gpt4 book ai didi

php - 时间戳 < 1 上的 MySQL 查询在迁移后停止工作

转载 作者:行者123 更新时间:2023-11-29 02:18:41 25 4
gpt4 key购买 nike

我已将我的 XAMPP 服务器从一台笔记本电脑迁移到另一台(新笔记本电脑)。我的旧笔记本电脑上有 XAMPP 64 位版本,我在新笔记本电脑上安装了 32 位版本。

迁移后,我无法获得任何 pages一些表中的数据。调试后,似乎以下查询停止工作:

SELECT * FROM `pages` WHERE f_site_id = '1' AND deactivation_date < 1;

我用以下值初始化 deactivation_date 字段:0000-00-00 00:00:00 .

将上述查询更改为以下查询后:

SELECT * FROM `pages` WHERE f_site_id = '1' AND deactivation_date = '0000-00-00';

它似乎再次正常工作。

谁能向我解释为什么会发生上述情况?我在更多地方有一个检查 timestamp < 1 的查询在替换所有查询之前,我想知道为什么会这样。

编辑最后一个查询是否是检查空时间戳的正确方法?

最佳答案

您没有提到旧的和新的 MySQL 版本,所以很难准确地确定这一点。

旧版本的 MySQL 具有 SQL 严格模式,并且 NO_ZERO_IN_DATE模式,禁用。因此,将一个小整数转换为 DATE会产生一个有效的,如果是非常早的日期。

以后的版本不会这样做。当您尝试将一个小整数转换为 DATE , 较新的 MySQL 产生 NULL .而且,anything < NULL产生错误。

我想这就是发生在你身上的事情。随着时间的推移,MySQL 和 MariaDB 团队正在稳步尝试摆脱数据类型的草率。

关于php - 时间戳 < 1 上的 MySQL 查询在迁移后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35240443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com