我有一个datetime
字段。如果表单中的用户只输入日期,那么时间将被设置为00:00:00
,这应该是它应该的样式。
但是在mysql中我需要将此字段与now()
或curdate()
进行比较。如果时间设置且不是00:00:00
,我只需要比较日期,如果时间是其他值,我需要将其与now()
进行比较。
例如,如果我在mysql date>=now()
中使用,并且用户只设置2013/12/22
之类的日期,则12/22
上的比较将为false,这是我不想要的。我希望12/23
上的比较是假的,那么输入的日期在同一天仍然有效。
现在如果使用date>=curdate()
,那么如果有人设定时间,则会忽略时间。
一种解决方案是检查时间是否为00:00:00
,然后以某种方式将其更改为23:59:59
进行比较。
所以底线是,如果00:00:00
字段中有datetime
时间,则用户显然只设置了日期,因此我需要将日期与curdate()
进行比较。如果时间设置为任何其他值,我需要将日期与now()
进行比较。
可行吗?
答案 0 :(得分:1)
我会尝试这个条件:
dt >= now()
OR
(
time( dt ) = '00:00:00'
AND
dt >= date( now() )
);
dt >= now()
==>如果日期时间dt
比现在更好(),那就更糟糕了。
time( dt ) = '00:00:00'
==>检查时间部分是否为00:00:00
date( now() )
==>截断now()
的时间部分,只留下一个日期部分。
查看演示==> http://www.sqlfiddle.com/#!2/8609c/6