表の詳細に基づいて、「現在利用可能な」レコードを選択したいと思います。簡単なはずだと思いますが、もちろん見ていません。ここで質問することで、自分の質問に答えられるように頭をジョギングできることを願っています。
私は2つのテーブルを持っています:
table_1
id
time_zone_name (eg, "US/Eastern")
table_2
tab1_id
day_of_week (1=Monday, 7=Saturday)
現在のGMTタイムスタンプが「2012-07-0813:35:00 GMT」であることがわかっている場合、タイムゾーンを調整した後、table_2.day_of_weekが一致するtable_1からレコードを選択できるはずです。
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」などの名前付きタイムゾーンを使用するには、タイムゾーンテーブルを適切に設定する必要があります。
どうやらそれらは適切に設定されていません。
これについてもっと良い方法はありますか?任意の提案をいただければ幸いです。