如何在mysql中的不同时区中计算总行数
这是我的sql查询。它返回UTC时区的总行数。我想要计算不同时区中的completed_date字段。像America/Los_Angeles时区格式。我听说我需要使用GROUP或DATE函数,但我不明白。如何在mysql中的不同时区中计算总行数
SELECT COUNT(*)
FROM `team_users`
WHERE (`completed_date` BETWEEN '2016-04-27 00:00:00' AND '2016-04-27 23:59:59')
这应该转换completed_date
,这样你可以用它您的日期比较:
SELECT COUNT(*)
FROM `team_users`
WHERE (CONVERT_TZ(`completed_date`, '+00:00', '-08:00')
BETWEEN '2016-04-27 00:00:00' AND '2016-04-27 23:59:59')
使用时区偏移量是问题,因为美洲/洛杉矶被-07:00
一天,因为夏令时,但另有-08:00
。
您可以使用UTC
,然后为太平洋标准时间或America/Los_Angeles
如果你的系统已经配置为使用命名时区:http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html
'PST'是否在不加载MySQL中的时区数据的情况下工作? – Mike
@Mike:可能不是:http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html – AbraCadaver
如果你必须在MySQL中加载时区数据,无论如何可能是'America/Los_Angeles'应该一直工作,不是吗? – Mike
你有称为列'timezone'? – WillardSolutions
将日期从本地时区转换为UTC,然后再将它们放入查询中。 – Mike