我有以下结构作为表,我想从前一天选择记录,我已经尝试了以下查询来选择记录。
SELECT slot_date, slot_time FROM slot_booking WHERE slot_date =
DATE_SUB(CURDATE(), INTERVAL 24 HOUR)
假设今天是(2018-04-03)时间是09(24小时格式)我想从DB 2018-04-04 TIME在09:00:00到9.30:00之间选择一条记录
我正在努力比较时间字段,如果您在回答后有任何建议或解决方案
答案 0 :(得分:0)
Concat日期和时间字段,使用str_to_date转换为datetime,然后根据需要使用date_add或date_sub
SET @DT = '2018-04-14';
SET @T = '09:00:00';
set @now = '2018-04-13 09:00:00';
SELECT STR_TO_DATE(CONCAT(@DT,@T),'%Y-%m-%d%H:%i:%s') dt,
case when STR_TO_DATE(CONCAT(@DT,@T),'%Y-%m-%d%H:%i:%s')
between date_add(@now, interval 24 hour) and date_add(date_add(@now, interval 24 hour),interval 30 minute) then 'true'
else 'false'
end as inrange;
+---------------------+---------+
| dt | inrange |
+---------------------+---------+
| 2018-04-14 09:00:00 | true |
+---------------------+---------+
1 row in set (0.00 sec)