我需要检查当前时间是否在数据库中的某个字段范围内。
例如在数据库中,我会存储start time
,end time
,start date
和end date
。
然后我需要检查当前日期是否在查询返回的值的范围内。
我试过了:
WHERE start_date <= $currdate
AND end_date >= $currdate
AND start_time <= $currtime
AND end_time >= $currtime
哪种方法很有效,直到我们遇到日期重叠两天的情况,在这种情况下,查询返回NULL
,因为end_time
显然比当前时间少。
我想我需要一种方法将start_date
和start_time
与end_date
和end_time
合并?
答案 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)
当然,这是假设您的开始/结束日期和时间是相关的。不完全确定分离这两个字段的业务逻辑是什么......