是否有一种方法可以使MySQL返回1而不是0 for SELECT NOW() = '2016-10-10',而无需转换(CAST('2016-10-10' AS DATE))或转换为date (DATE('2016-10-10'))。
我的实际案例场景是DATE和DATETIME列之间的比较。我想对这些列进行JOIN,但是只有当我可以使MySQL只比较日期而忽略时间时,这才有可能。
我不能进行转换/转换,因为这非常昂贵( 查询性能慢,因此加入视图 )。
发布于 2016-10-10 00:18:25
您需要转换的不是'2016-10-10'字符串(因为它是有效日期文字),而是NOW()。
NOW()以小时、分钟和秒的形式返回当前时间戳。而'2016-10-10'被解释为'2016-10-10 00:00:00'。这大概不等于现在的时间。
所以
SELECT DATE(NOW()) = '2016-10-10'UPD
我可以让MySQL只比较日期,忽略时间。
对于比较coldate = coldatetime,您可以在范围上进行比较,例如:
coldate <= coldatetime AND coldate + INTERVAL 1 DAY > coldatetime根据你的实际情况,这可能是有益的,也可能是没有好处的。
https://stackoverflow.com/questions/39949758
复制相似问题