gpt4 book ai didi

php - Mysql日期比较(大于等于)不带前导零

转载 作者:行者123 更新时间:2023-11-29 01:24:36 24 4
gpt4 key购买 nike

我必须进行一些日期比较并返回一个数据集。 PHP 发送了当前日期时间,带有非前导零的时间 (8:00:00) 表示上午 8 点而不是 (08:00:00)。没有前导零的情况给出了错误的结果。有人可以解释为什么吗?

要进行测试,请运行此 SELECT IF(DATE_ADD('2011-03-20', INTERVAL '08:05:00' HOUR_SECOND) >= '2011-03-20 8:00:00',"是”,“否”)

结果:否

SELECT IF(DATE_ADD('2011-03-20', INTERVAL '08:05:00' HOUR_SECOND) >= '2011-03-20 08:00:00',"yes","No ")

结果:是

不应该都给出结果:"is"

它是否对非前导零进行字符串比较?

最佳答案

我认为这与 MySQL 在某些情况下相当狡猾的日期/时间处理有关,MySQL 转换为数字,而在其他情况下它使用字符串比较。

来自手册

http://dev.mysql.com/doc/refman/5.0/en/using-date.html

当您使用 <、<=、=、>=、> 或 BETWEEN 运算符将 DATE、TIME、DATETIME 或 TIMESTAMP 与常量字符串进行比较时,MySQL 通常会将字符串转换为内部长整数以进行更快的比较(以及更“宽松”的字符串检查)。但是,此转换受以下异常(exception)情况限制:

当你比较两列时

当您将 DATE、TIME、DATETIME 或 TIMESTAMP 列与表达式进行比较时

当您使用任何其他比刚刚列出的比较方法时,例如 IN 或 STRCMP()。

对于这些异常情况,比较是通过将对象转换为字符串并执行字符串比较来完成的。

关于php - Mysql日期比较(大于等于)不带前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379575/

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