我有一个数据类型为 datetime
的日期字段,即使 H:s:i
已存储,但我不想在验证时考虑它例如,我在 where 查询条件中使用 CURDATE()
但正在考虑“H:S:i”
SELECT ('2013-01-10 05:10:50' <= CURDATE()) FROM dual
上面的查询返回 false(0),为什么不是 true(1),因为 2013-01-10 05:10:50
是过去的时间。简而言之,我想存储 'H:s:i' 但在验证哪个 MySql 函数适用时不应该考虑?
更新了以下内容
我不想使用 NOW()
和 SYSDATE()
因为这些函数在验证时会考虑 H:s:i
,所以我使用了 CURDATE()
但当我使用 CURDATE()
时预期结果不同。
最佳答案
您的查询返回 false
因为 CURDATE()
返回的是 date 而不是日期和时间。与日期和时间进行比较时,仅返回日期表示 2012-01-10 00:00:00
。因此 CURDATE()
不在 2013-01-10 05:10:50
之前。
我建议您使用 NOW()
- 它会返回日期和时间。
关于mysql - 建议合适的mysql日期函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254104/