使用MySQL检查条件(日期,时间)

时间:2012-09-21 22:55:53

标签: mysql sql date time conditional-statements

我需要检查当前时间是否在数据库中的某个字段范围内。

例如在数据库中,我会存储start timeend timestart dateend date

然后我需要检查当前日期是否在查询返回的值的范围内。

我试过了:

WHERE start_date <= $currdate 
  AND end_date >= $currdate
  AND start_time <= $currtime
  AND end_time >= $currtime

哪种方法很有效,直到我们遇到日期重叠两天的情况,在这种情况下,查询返回NULL,因为end_time显然比当前时间少。

我想我需要一种方法将start_datestart_timeend_dateend_time合并?

1 个答案:

答案 0 :(得分:2)

你试过时间戳()吗?

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestamp

也许可以做类似

的事情
WHERE timestamp(start_date, start_time) <= timestamp(currdate, currtime)
  AND timestamp(end_date, end_time) >= timestamp(currdate, currtime)

当然,这是假设您的开始/结束日期和时间是相关的。不完全确定分离这两个字段的业务逻辑是什么......