我有一堆事件存储在我的数据库中.每个事件都有一个开始时间,以UTC格式存储为DATETIME.每个用户都可以选择自己的时区.
我想显示一个日历,它只显示每月每天的事件数量.我不能GROUP BY DATE(start_dt),因为用户的日期不一定是[00:00:00 UTC].此外,用户的时区可能在月中有一个DST开关.
那么我唯一的选择是获取给定月份的每个事件,然后使用我的服务器端语言对它们进行分组和计数吗?
最佳答案
你可以试试
SELECT ... FROM ... GROUP BY DATE(CONVERT_TZ(start_dt,'UTC','America/Vancouver'))
请注意,在此之前需要使用load the timezone data into MySQL.