datetime比较在mysql中返回错误结果

b4qexyjb  于 2021-06-17  发布在  Mysql
关注(0)|答案(0)|浏览(228)

当下面的mysql查询返回不一致的结果时,我遇到了一个不寻常的问题,我正在试图找出原因。我已经找到了一个有效的查询,但我想了解为什么查询没有按预期工作:

SELECT id, ExpiryDate
FROM sites
WHERE ExpiryDate >= '2018-12-24 00:00:00' 
  AND ExpiryDate <= '2019-01-01 00:00:00'

以下是我运行的用于比较的测试:
mysql via shell=正确结果
mysql workbench=正确结果
dbeaver=结果不正确
phpstorm sql console=结果不正确
php 7.0脚本=结果不正确
很明显,预期的结果是过期日期介于提供的两个日期之间的记录。然而,在结果返回不正确的情况下,我们得到的记录日期在2018年12月24日之前。
我将查询改为以下内容:

SELECT id, ExpiryDate
FROM sites
WHERE UNIX_TIMESTAMP(ExpiryDate) 
   BETWEEN UNIX_TIMESTAMP('2018-12-24 00:00:00') 
   AND UNIX_TIMESTAMP('2019-01-01 00:00:00')

我很有兴趣理解为什么第一个查询返回不正确的结果?这是一个php错误,mysql错误还是我做错了什么?运行mysql 5.6和php7.0。php是通过mysqli扩展运行的。我已经在多台机器上确认了这个问题,并确认所有机器都运行相同的数据库数据。expirydate字段是一个datetime字段。
感谢您对高级课程的深入了解。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题