サプライヤーのクライアント ソフトウェアで各レコードをチェックした時間は正常でしたが、SQLyog を使用してバックグラウンドで直接チェックしたところ、クエリした時間フィールドが常に 8 時間遅かったことがわかりました。何が問題ですか?
次のステートメントを使用します。形式は 2013-05-25th 01:37:08 です。実際、このレコードの正しい時刻は 2013-05-25th 09:37:08 です。
SELECT DATE_FORMAT(FROM_UNIXTIME) (`table` .`time`),'%Y-%m-%D %h:%i:%s') AS `theTime` FROM table
サーバーのタイムゾーン設定
について ただし、サプライヤーのクライアント ソフトウェアには問題はありません。
どうしても方法がない場合、mysql の現在時刻に 8 時間を加えて、int 型の時刻フィールドを 2013-05-25th 01:37:08 の形式で表示する方法。
MySQL サーバーにはいくつかのタイムゾーン設定があります:
· システムのタイムゾーン。サーバーは起動時にホストのタイムゾーンを決定しようとし、それを使用して system_time_zone システム変数を設定します。
· サーバーの現在のタイムゾーン。グローバル システム変数 time_zone は、サーバーが現在使用しているタイム ゾーンを表します。初期値は「SYSTEM」で、サーバーのタイムゾーンがシステムのタイムゾーンと同じであることを示します。初期値は --default-time-zone=timez オプションを使用して明示的に指定できます。スーパー権限がある場合は、次のステートメントを使用して、実行時にグローバル変数値を設定できます。
如果如果 如果如果 如果如果場合たらばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかかかし各クライアント接続には、session time_zone 変数によって指定される独自のタイムゾーン設定があります。初期値はグローバル変数 Time_zone と同じですが、次の文を使用して再設定できます。 session.time_zone;
タイムゾーン値は、「+10:00」や「-6:00」などの UTC オフセットを表す文字列です。 mysql データベースにタイムゾーン関連のテーブルを作成してロードした場合は、「ヨーロッパ/ヘルシンキ」、「米国/東部」、「MET」などの名前付きタイムゾーンを使用することもできます。値「SYSTEM」は、タイムゾーンがシステムのタイムゾーンと同じである必要があることを示します。タイムゾーン名は大文字と小文字を区別しません。
両方のフィールドにシステムが表示されます