在mysql中的前一天查找记录表单日期字段和时间字段

时间:2018-04-13 05:46:26

标签: php mysql

我有以下结构作为表,我想从前一天选择记录,我已经尝试了以下查询来选择记录。

SELECT slot_date, slot_time FROM slot_booking WHERE slot_date =
DATE_SUB(CURDATE(), INTERVAL 24 HOUR)

enter image description here

假设今天是(2018-04-03)时间是09(24小时格式)我想从DB 2018-04-04 TIME在09:00:00到9.30:00之间选择一条记录

我正在努力比较时间字段,如果您在回答后有任何建议或解决方案

1 个答案:

答案 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)