Mysql不在时间和日期之间
我正在尝试选择数据库中的所有行,其中完成的行不在前一天的14:00和10:00之前的当天之间。脚本设计为每天10:30运行 我试过这个Mysql不在时间和日期之间,mysql,datetime,Mysql,Datetime,我正在尝试选择数据库中的所有行,其中完成的行不在前一天的14:00和10:00之前的当天之间。脚本设计为每天10:30运行 我试过这个 user | completed mike | 2016-07-10 19:00:00 john | 2016-07-11 08:00:00 您应该使用date\u sub SELECT name FROM daily_tracking WHERE completed NOT BETWEEN now() - interval 1 day AND NOW()
user | completed
mike | 2016-07-10 19:00:00
john | 2016-07-11 08:00:00
您应该使用date\u sub
SELECT name FROM daily_tracking WHERE completed NOT BETWEEN now() - interval 1 day AND NOW() - INTERVAL 8 hour
您应该使用date\u sub
SELECT name FROM daily_tracking WHERE completed NOT BETWEEN now() - interval 1 day AND NOW() - INTERVAL 8 hour
我不会依赖于脚本运行的确切时间。相反,使用基于当前日期的算术:
SELECT name
FROM daily_tracking
WHERE completed NOT BETWEEN date_sub(NOW(), interval 1 day )
AND date_sub(NOW(), INTERVAL 8 hour)
选择dt.name
来自每日跟踪数据
完成时日期添加(curdate(),间隔10小时);
这将在给定的一天起作用,无论脚本运行的时间如何。我不会依赖于脚本运行的确切时间。相反,使用基于当前日期的算术:
SELECT name
FROM daily_tracking
WHERE completed NOT BETWEEN date_sub(NOW(), interval 1 day )
AND date_sub(NOW(), INTERVAL 8 hour)
选择dt.name
来自每日跟踪数据
完成时日期添加(curdate(),间隔10小时);
这将在给定的一天起作用,无论脚本运行的时间如何。您也可以这样编写,我更喜欢这样
SELECT dt.name
FROM daily_tracking dt
WHERE completed < date_sub(curdate(), interval (24 - 14) hour) or
completed > date_add(curdate(), interval 10 hour);
你也可以这样写,我更喜欢
SELECT dt.name
FROM daily_tracking dt
WHERE completed < date_sub(curdate(), interval (24 - 14) hour) or
completed > date_add(curdate(), interval 10 hour);
您应该考虑在执行查询时给我们的错误/问题。您应该考虑在执行查询时给我们带来的错误/问题。