※仕様書みたら分かるような備忘録です
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