我要求在数据库日期24小时之前生成电子邮件。我将所有日期保存为UTC格式的数据库,并且注册用户来自不同的时区。那么如何编写查询来获取记录在24小时之前,根据各自的时区向用户发送电子邮件。任何帮助将不胜感激。
答案 0 :(得分:0)
TIMESTAMP
数据类型,而不是DATETIME
数据类型。 TIMESTAMP
始终以UTC时间存储在MySQL中。SET time_zone = 'Asia/Kolkata';
值之前,使用TIMESTAMP
之类的SQL命令设置用户的时区。从表中检索时,它们将自动转换为当前时区。同样,它们在存储时将被转换为UTC。SELECT something FROM table WHERE ready_time >= NOW() + INTERVAL 24 HOUR
等查询查找记录,并使用结果集发送电子邮件或做您喜欢的任何事情。我不知道您将如何确定用户的时区设置。许多系统使其成为用户偏好。但您需要在tz database format中获取它。