【问题标题】:MySQL days before based on setting in other tableMySQL 几天前基于其他表中的设置
【发布时间】:2015-12-16 17:34:28
【问题描述】:

当前查询检查是否是客户今天的生日以及 processTime 是否是这一小时。这就像一个魅力。但是,我们想调整查询,并在生日前 x 天向客户发送电子邮件。这取决于生日设置中的 dayOffset 设置。

dayOffset 可以在 -365 到 +365 的范围内。

我应该如何调整以下查询。生日列是日期列

SELECT firstName, lastName, birthday, FROM 
    birthday_customers C
    INNER JOIN
    birthday_settings S
        ON C.customerId = S.customerId
WHERE 
    MONTH(birthday) = MONTH(NOW()) 
    AND DAY(birthday) = DAY(NOW())
    AND processTime = HOUR(NOW())

【问题讨论】:

    标签: mysql date offset


    【解决方案1】:

    您可以从当前时间中减去天数:

    SELECT firstName, lastName, birthday
    FROM birthday_customers C INNER JOIN
         birthday_settings S
         ON C.customerId = S.customerId
    WHERE MONTH(birthday) = MONTH(DATE_SUB(CURDATE(), interval s.DayOffset day) AND
          DAY(birthday) = DAY(DATE_SUB(CURDATE(), interval s.DAYOffset day) AND
          processTime = HOUR(NOW())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2022-11-27
      相关资源
      最近更新 更多