【发布时间】:2017-02-20 16:54:22
【问题描述】:
我有一个包含用户的 mysql 表,并且我有一个时区字段。值可以是 0 或 +2 或 -2 等...例如,美国用户应该是 -5,而法国用户应该是 +1。 如何执行 SELECT 查询(我想每小时运行一次)以获取特定时区特定时间的所有用户?
【问题讨论】:
我有一个包含用户的 mysql 表,并且我有一个时区字段。值可以是 0 或 +2 或 -2 等...例如,美国用户应该是 -5,而法国用户应该是 +1。 如何执行 SELECT 查询(我想每小时运行一次)以获取特定时区特定时间的所有用户?
【问题讨论】:
试试下面的
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+02:00', @@session.time_zone)) FROM `table_name`
【讨论】:
我找到了一个简单的解决方案:假设我想在他们的时区获取现在是下午 5 点的所有用户:
select * from table where SUBSTR(curtime(), -8, 2) + timezone_field = 17;
所以我可以每小时运行一次,例如,每天下午 5 点向每个用户发送一次消息。
【讨论】: