web-dev-qa-db-ja.com

MySql-UTC形式のSELECTTimeStamp列

Mysql 5.0 DBには、LastUpdated情報を制御するための列があります。列はTimeStampのものであり、MySqlはデータを自動更新します。

この列をUTC形式で選択しようとしています。

問題は、サーバーが米国の日時に設定されていることです。 MySqlのドキュメントによると、DBは情報をUTCで保存しますが、情報を表示したい場合は、サーバーの時刻に変換します。

この変換を回避してSELECTコマンドを実行する方法はありますか?

14
Michel

サーバーのデフォルトのタイムゾーンを変更するだけでなく、次のSQLステートメントを実行して、接続ごとにタイムゾーンを調整することもできます。

SET time_zone = timezone;

ここで、timezoneはタイムゾーンの名前です( MySQLドキュメントを参照 )。

または、 CONVERT_TZ function を使用して、タイムスタンプを別のタイムゾーンに変換することもできます。

6
fivedigit
SELECT 
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime` 
FROM `table_name`

ここでチートシートを作成しました: MySQLのタイムゾーンをUTCに設定する必要がありますか?

34
Timo Huovinen