• 締切済み

日時を保存するカラムの型について

日時を保存する型としてベストな型はどれなのでしょうか? MySQL5.1にて日付を保存するカラムをdatetime型で設計をしていたのですがタイムゾーンを考慮したい場合にはどうするのがベストでしょうか? タイムゾーンを別カラムで持つ場合、単位を時間で持つと計算が手間のように感じ、それならunixtimeをint型で持って、時差情報も秒で持てば計算がらく、と思ったのですが、、、 こうやってますよ、という事例などありましたら教えてください

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

MySQLにも、time zone を変換する関数がありますので、datetime型と、time型またはvarchar型でtime zone情報を持たせておけば、以下のように取り出せるようですよ 関数 CONVERT_TZ(dt,from_tz,to_tz) 例 select CONVERT_TZ(`datetime_column`,`tz_column`,'JST') as jp_time ,* from `time_table`; マニュアルには「名前付きの時間帯を使用するには、時間帯テーブルが正確に設定されている必要があります。」 と有るので、time zoneは、'+9:00' のように指定する方が、MySQLの状態を選ばないようです。 計算時間については、どういった状態で取り出すことが多いかとか、件数とかによるので、なんとも。

sonkm3
質問者

お礼

ありがとうございます。 文字列ベースでタイムゾーンの差分を計算できるのですね。 試してみます。

関連するQ&A