我对 MySQL 5.1 有疑问。datetime 数据类型不会隐式转换为匹配日期列。
SELECT * FROM my_table WHERE my_date_field = NOW()
此请求不返回任何使用 MySQL 5.1 的行,但适用于版本 5.0。如果我们使用CURDATE()
而不是NOW()
它在 MySQL 5.0 和 MySQL 5.1 中都可以工作。如果强制转换是显式的 ( CAST(NOW() AS DATE)
),它也适用于 MySQL 5.0 和 MySQL 5.1。
该问题仅出现在从日期时间到日期的隐式转换中。没有人已经遇到过这个问题或知道如何解决这个问题吗?我知道使用 NOW() 而不是 CURTIME() 不是最好的,但这不是这里的问题。它目前在应用程序中使用,目的是避免重写所有内容。
谢谢!