我将行用户作为行存储在我的数据库中。我允许用户输入他们的时区,该时区也存储在数据库中。
我的应用程序每天都会在他们指定的时间给他们发送电子邮件。我将电子邮件传递作为一行存储在另一个数据库表中。这将通过 cron 作业发生。
我希望我的查询根据他们的时区提取该用户的最新电子邮件至少 1400 分钟(24 小时前)并经过他们指定时间的用户记录。
我有以下查询,但我不知道如何解释 mysql 的时区和用户的时区。有什么建议么?
SELECT u.id, u.email, u.timezone_offset, u.email_time, TIMESTAMPDIFF(
MINUTE , CONCAT( DATE( MAX( e.created ) ) , ' ', u.email_time ) , NOW( ) ) AS min_since_last_email
FROM Users u
INNER JOIN Emails e ON e.user_id = u.id
WHERE min_since_last_email > 1400
GROUP BY u.id
时区偏移量是与 GMT 的偏移量。所以它对我来说就像“-5”。