我正在尝试运行mysql查询来删除行,但面临时区问题。我的服务器在美国,我的用户在亚洲。在表格中输入的时间戳是亚洲人。我可以删除亚洲时间的行吗?这是我的询问;
mysql_query("DELETE FROM SMS_IN WHERE NOW() > sent_dt");
NOW()
正在占用美国时间而不是亚洲时间。
答案 0 :(得分: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");
答案 1 :(得分:0)
您可以更改全局time_zone
,也可以在DATE_ADD
上使用DATE_SUB
或NOW()
来调整分离的小时数,这可能是你(我希望我们所有人都能保持不变[DST除外])。