MySQL使用date\u add比较两个datetime

MySQL使用date\u add比较两个datetime,mysql,datetime,compare,schedule,dateadd,Mysql,Datetime,Compare,Schedule,Dateadd,是关于日程安排的。用户选择1 datetime,我需要将其与DB进行比较,如果我在该时间内没有其他内容,并且+-2小时(四舍五入) 两个日期时间均以SQL“datetime”格式保存(yyyy-dd-mm hh:mm:ss) 条件是:用户日期时间不能大于或小于DB-DATETIME的1小时59分(7199秒) 我尝试以下几点: SELECT event FROM schedule WHERE '2014-08-02 12:00:00' > DATE_ADD(event, INTERVAL

是关于日程安排的。用户选择1 datetime,我需要将其与DB进行比较,如果我在该时间内没有其他内容,并且+-2小时(四舍五入)

两个日期时间均以SQL“datetime”格式保存(yyyy-dd-mm hh:mm:ss)

条件是:用户日期时间不能大于或小于DB-DATETIME的1小时59分(7199秒)

我尝试以下几点:

SELECT event FROM schedule
WHERE '2014-08-02 12:00:00' > DATE_ADD(event, INTERVAL -7199 SECOND) OR
WHERE '2014-08-02 12:00:00' < DATE_ADD(event, INTERVAL +7199 SECOND)
从计划中选择事件
其中'2014-08-02 12:00:00'>日期添加(事件,间隔-7199秒)或
其中“2014-08-02 12:00:00”<日期添加(事件,间隔+7199秒)

本例中的固定日期时间用于检查。。实时日期时间以字符串$\u COOKIE[“userdt”]表示。非常确定我很接近,但无法完成。

编写查询的正确方法是:

SELECT event
FROM schedule
WHERE '2014-08-02 12:00:00' > DATE_ADD(event, INTERVAL -7199 SECOND) AND
      '2014-08-02 12:00:00' < DATE_ADD(event, INTERVAL +7199 SECOND)
SELECT event
FROM schedule
WHERE event > DATE_ADD('2014-08-02 12:00:00', INTERVAL -2 hour) and
      event < DATE_ADD('2014-08-02 12:00:00', INTERVAL +2 hour);

这些变化有几个原因。首先,
间隔2小时
间隔7199秒
更容易理解。它澄清了查询正在做什么。
除了错误输出sql语句之外,您应该比较的是用户输入,而不是表中的字段。这将返回2014-08-02 10:00:00和2014-08-02 14:00:00之间的任何事件字段

SELECT event FROM schedule
 WHERE  event > DATE_ADD('2014-08-02 12:00:00', INTERVAL -7199 SECOND) 
 AND event < DATE_ADD('2014-08-02 12:00:00', INTERVAL +7199 SECOND)
从计划中选择事件
其中事件>日期添加('2014-08-02 12:00:00',间隔7199秒)
事件<日期添加('2014-08-02 12:00:00',间隔+7199秒)
更新


我错过了OR,它会在2014-08-02 14:00:00之前和2014-08-02 10:00:00之后归还任何东西,所以实际上会归还所有东西。(感谢戈登,他注意到:P)

是的,我注意到第二个问题,我一提出这个问题,但感谢你的建议,这会很有帮助的。