※仕様書みたら分かるような備忘録です
MySQL版
| 番号 | SQL | 結果 | time zone |
備考 |
|---|---|---|---|---|
| 1 | '2024-11-11 09:00:00' | 2024-11-11, 09:00 | UTC | ※以後の基準となるJST日付(UTCに変換したら'2024-11-11 00:00:00')になる想定、時差が-9hだから |
| 2 ⭕️ | DATE_ADD( TIMESTAMP('2024-11-11 09:00:00') | 2024-11-11, 00:00 | UTC | INTERVAL -9 HOURで変換しただけ |
| 3 ⭕️ | CONVERT_TZ('2024-11-11 09:00:00' ,'Asia/Tokyo' ,'UTC') | 2024-11-11, 00:00 | UTC | CONVERT_TZ(dt,from_tz,to_tz) |
| 4 ⭕️ | CONVERT_TZ('2024-11-11 09:00:00' ,'+09:00' ,'+00:00') | 2024-11-11, 00:00 | UTC | CONVERT_TZ(dt,from_tz,to_tz) |
| $\textsf{**}\hspace{1em}$ | $\textsf{**}\hspace{23em}$ | $\textsf{**}\hspace{6em}$ | $\textsf{**}\hspace{1em}$ | $\textsf{**横スクロール用ダミー行}\hspace{40em}$ |
参考
Bigquery版
| 番号 | SQL | 結果 | time zone |
備考 |
|---|---|---|---|---|
| 1 | '2024-11-11 09:00:00' | 2024-11-11, 09:00 | *JST | ※以後の基準となるJST日付(UTCに変換したら'2024-11-11 00:00:00')になる想定、時差が-9hだから |
| 2 ⭕️ | DATE_ADD( TIMESTAMP('2024-11-11 09:00:00') | 2024-11-11, 00:00 | UTC | INTERVAL -9 HOURで変換しただけ |
| ** | ** | ** | ** | ** |
| 11 | TIMESTAMP('2024-11-11 09:00:00') | 2024-11-11, 09:00 | UTC | 「第1引数がUTC時刻です」という表記 ※日時は記載のままTIMESTAMP型(UTC)に変換 |
| 12 | TIMESTAMP('2024-11-11 09:00:00','+00:00') | 2024-11-11, 09:00 | UTC | 「第1引数がUTC時刻です」という表記、[3]の第2数を書かないdefの表記と同じ |
| 13 | TIMESTAMP( TIMESTAMP('2024-11-11 09:00:00'),"Asia/Tokyo") | (error) | UTC | エラーになる(第2引数を持つTIMESTAPの第1引数にTIMESTAMP型は使えないから) |
| 14 ⭕️ | TIMESTAMP('2024-11-11 09:00:00',"Asia/Tokyo") | 2024-11-11, 00:00 | UTC | 「第1引数が日本時刻です」という表記 ※1(参考) |
| 15 △ | TIMESTAMP( TIMESTAMP('2024-11-11 09:00:00',"Asia/Tokyo") ) | 2024-11-11, 00:00 | UTC | 値は正しいが2つ目のTIMESTAMPは意味がない、1つ目のTIMESTAMP結果(上行)と変わってない |
| ** | ** | ** | ** | ** |
| 21 | DATETIME('2024-11-11 09:00:00') | 2024-11-11, 09:00 | UTC | 第1引数(11/11 9:00)のDATETIME型(JST)に変換 |
| 22 △ | TIMESTAMP( DATETIME('2024-11-11 09:00:00'),"Asia/Tokyo" ) | 2024-11-11, 00:00 | UTC | DATETIMEは[21]と同じ(値はそのままDATETIME型)に変換)で、それをUTCに変換(-9h) |
| 23 | DATETIME('2024-11-11 09:00:00',"Asia/Tokyo") | 2024-11-11, 18:00 | UTC | 第1引数(11/11 9:00 UTC)をJSTを表記(+9h)<想定の逆変換> |
| 24 | TIMESTAMP( DATETIME('2024-11-11 09:00:00',"Asia/Tokyo") ) | 2024-11-11, 18:00 | UTC | 第1引数(11/11 9:00 UTC)をJSTを表記(+9h)<想定の逆変換> |
| $\textsf{**}\hspace{1em}$ | $\textsf{**}\hspace{23em}$ | $\textsf{**}\hspace{6em}$ | $\textsf{**}\hspace{1em}$ | $\textsf{**横スクロール用ダミー行}\hspace{40em}$ |
参考
※1(参考) https://qiita.com/JackSweet/items/04c2e47f6ff44a2248ec