我想根据表中的具体情况选择“当前可用”的记录。我认为这应该很容易,但当然,我没有看到它。我希望在这里问能让我的头脑足够清醒,也许我可以回答我自己的问题!
我有 2 张桌子:
table_1
id
time_zone_name (eg, "US/Eastern")
table_2
tab1_id
day_of_week (1=Monday, 7=Saturday)
鉴于我知道当前的 GMT 时间戳是“2012-07-08 13:35:00 GMT”,我应该能够从 table_1 中选择记录,其中 table_2.day_of_week在调整 time-zone 后是匹配的。
MySql 函数 CONVERT_TZ 看起来很有希望!
CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00 ');
我可以试试这个:
SELECT id from table_1 inner join table_2 ON (table_1.id=table_2.table_1_id)
WHERE DAYOFWEEK(CONVERT_TZ(UTC_TIMESTAMP, 'GMT', table_1.time_zone_name)) = table_2.day_of_week
但是 CONVERT_TZ 函数不接受安装在我的主机上的 MySql 上的区域名称,例如“US/Eastern”。根据 MySql 文档:
要使用命名时区,例如“MET”或“Europe/Moscow”,必须正确设置时区表。
显然他们没有正确设置。
有没有更好的方法来解决这个问题?任何建议将不胜感激。