0

私のデータベースでは、時間を BIGINT UTC 値として保存しています。

私のテスト データの SQL ダンプでは、読みやすくするために UTC で時刻を表示したいと思います。ただし、MySQL の unix_timestamp 関数はローカル タイム ゾーンの時刻を想定しているため、これを回避しようとしています。

私は周りを見回しましたが、UTC 時刻文字列を UNIX タイムスタンプに変換する唯一の方法は、次の式を使用することです。

SELECT unix_timestamp(CONVERT_TZ('2011-08-08 06:00:00','UTC',@@global.time_zone))

これを行うより良い方法はありますか?

4

1 に答える 1

1

bigint の代わりにタイムスタンプとして保存すると、タイムゾーンを設定するだけで自動的に行われます。

また、あなたが何をしているのかよくわかりません。unixtime を bigint 列に正しく保存していますか? したがって、unix_timestamp()関数を使用している理由がわかりません-それは、UNIX時間からではなく、UNIX時間に変換します。

これが必要なものだと思います:

SET time_zone = '+0:00';
SELECT FROM_UNIXTIME(col) FROM table;
于 2011-08-09T08:04:29.017 に答える