DATE_FORMAT_TZ は、TIMESTAMP 値を指定されたタイムゾーンでフォーマット済みの文字列に変換します。
構文
VARCHAR DATE_FORMAT_TZ(TIMESTAMP timestamp, VARCHAR format, VARCHAR timezone)
VARCHAR DATE_FORMAT_TZ(TIMESTAMP timestamp, VARCHAR timezone)どちらの形式も VARCHAR 文字列を返します。
入力パラメーター
| パラメーター | データ型 | 説明 |
|---|---|---|
timestamp | TIMESTAMP | 変換対象のタイムスタンプです。 |
format | VARCHAR | 出力日付フォーマットです。例:yyyy-MM-dd HH:mm:ss。 |
timezone | VARCHAR | 対象となるタイムゾーンです。例:Asia/Shanghai。 |
注意事項
この関数は、タイムスタンプを対象のタイムゾーンにシフトします。たとえば、UNIX エポック
0をAsia/Shanghai(UTC + 08:00)で表示すると、1970-01-01 08:00:00になります。
使用例
テストデータ
| timestamp1 (TIMESTAMP) | format1 (VARCHAR) | timezone1 (VARCHAR) |
|---|---|---|
| 0 | yyyy-MM-dd HH:mm:ss | Asia/Shanghai |
テスト文
SELECT
DATE_FORMAT_TZ(timestamp1, format1, timezone1) AS var1,
DATE_FORMAT_TZ(timestamp1, timezone1) AS var2
FROM T1;テスト結果
| var1 (VARCHAR) | var2 (VARCHAR) |
|---|---|
| 1970-01-01 08:00:00 | 1970-01-01 08:00:00 |
UNIX エポック 0 は 1970-01-01 00:00:00 UTC です。Asia/Shanghai(UTC + 08:00)にシフトすると、結果は 1970-01-01 08:00:00 になります。