MYSQL根据日期选择,产生重复的,不可预测的结果

时间:2014-01-05 21:00:39

标签: php mysql

我有一个查询,它应该从一个表中获取一个数值(一些天),将该值添加到当前日期,然后将该日期与另一个表中的日期的行进行比较,并返回每个用户ID和匹配的事件ID。 (基本上,人们会在特定事件发生前X天设置提醒,我们正在尝试运行查询以查看每天需要在cronjob中发出哪些提醒。希望这是有道理的。)

不幸的是,我知道我只是遗漏了一些东西。首先,查询返回结果集的两倍,并且显示出错误的结果(它正在拉动一天之后的事件)。我肯定在这个知识库的最后,并且可以使用那些知道更好的人的帮助。

  • Users_Notifications.Alert是事件发生前提醒用户的天数
  • Events_Root.EventDate是事件发生的日期。

    SELECT * FROM `Users_Notifications`, `Events_Root` WHERE 
    DATE( DATE_ADD( NOW(), INTERVAL Users_Notifications.Alert DAY ) ) 
        = DATE( Events_Root.EventDate );
    

表格定义如下:

  • Users_Notifications: ID,User_ID,Event_ID,提醒
  • Events_Root: ID,Name,EventDate

1 个答案:

答案 0 :(得分:0)

NOW()函数使用本地时区。确保服务器上的时区正确。