0

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

例如在数据库中,我会存储一个start time, end time,start dateend date.

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

我尝试过:

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

效果很好,直到我们遇到日期重叠两天的情况,在这种情况下,查询返回显然比当前时间少NULLend_time

我想我需要一种将start_dateandstart_timeend_dateand结合起来的方法end_time

4

1 回答 1

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)

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

于 2012-09-21T23:18:20.537 回答