2

我正在尝试运行 mysql 查询来删除行,但面临时区问题。我的服务器在美国,我的用户在亚洲。在表格中输入的时间戳是亚洲的。我可以删除亚洲时间的行吗?这是我的查询;

mysql_query("DELETE FROM SMS_IN WHERE NOW() > sent_dt");

NOW()正在使用美国时间而不是亚洲时间。

4

2 回答 2

2

您可以使用CONVERT_TZ将时间从用户时区转换为服务器时区:

SELECT CONVERT_TZ(NOW(), 'user time zone', 'server time zone');

例如:

mysql_query("DELETE FROM SMS_IN WHERE CONVERT_TZ(NOW(), 'Asia/Hong_Kong', 'America/Montreal') > sent_dt");
于 2012-05-15T19:57:10.420 回答
0

您可以更改 global time_zone,或者您可以使用DATE_ADDor DATE_SUBonNOW()来调整您可能知道的分离小时数(我希望为了我们所有人的缘故保持不变 [DST 除外])。

于 2012-05-15T12:16:18.147 回答