Mysql不在时间和日期之间

时间:2016-07-11 14:40:55

标签: mysql datetime

user | completed
mike | 2016-07-10 19:00:00
john | 2016-07-11 08:00:00  

我正在尝试选择数据库中所有行,其中完成的行不是前一天的14:00和10:00之前的当天。该脚本旨在每天10:30运行

我试过这个

SELECT name FROM daily_tracking WHERE completed NOT BETWEEN now() - interval 1 day AND NOW() - INTERVAL 8 hour

3 个答案:

答案 0 :(得分:1)

你应该使用date_sub

SELECT name 
FROM daily_tracking 
WHERE completed NOT BETWEEN date_sub(NOW(), interval 1 day ) 
   AND date_sub(NOW(),  INTERVAL 8 hour)

答案 1 :(得分:1)

我不会依赖脚本运行的确切时间。相反,请根据当前日期使用算术:

SELECT dt.name
FROM daily_tracking dt
WHERE completed < date_sub(curdate(), interval (24 - 14) hour) or
      completed > date_add(curdate(), interval 10 hour);

无论脚本运行的时间如何,这都将在给定的一天起作用。

答案 2 :(得分:0)

你也可以这样写,我更喜欢......

CLASS=ButtonItem ID=btnDelete2