JST文字列をUTCに変換 (Bigquery・MySQL) 

:::note info
※仕様書みたら分かるような備忘録です
:::

# MySQL版

<table>
<thead>
<tr><th>番号</</th>
    <th>SQL</</th>
    <th>結果</</th>
    <th>time <br> zone</</th>
    <th>備考</</th>
</thead>
<tbody>
<tr><td>1</td>
    <td>'2024-11-11 09:00:00'</td>
    <td>2024-11-11, 09:00</td>
    <td>UTC</td>
    <td> ※以後の基準となるJST日付（UTCに変換したら'2024-11-11 00:00:00')になる想定、時差が-9hだから</td></tr>
<tr><td>2 ⭕️</td>
    <td>DATE_ADD( TIMESTAMP('2024-11-11 09:00:00')</td>
    <td>2024-11-11, 00:00 </td>
    <td>UTC</td>
    <td>INTERVAL -9 HOURで変換しただけ</td></tr>
<tr><td>3 ⭕️</td>
    <td>CONVERT_TZ('2024-11-11 09:00:00' ,'Asia/Tokyo' ,'UTC') </td>
    <td>2024-11-11, 00:00 </td>
    <td>UTC</td>
    <td>CONVERT_TZ(dt,from_tz,to_tz)</td></tr>
<tr><td>4 ⭕️</td>
    <td>CONVERT_TZ('2024-11-11 09:00:00' ,'+09:00' ,'+00:00') </td>
    <td>2024-11-11, 00:00 </td>
    <td>UTC</td>
    <td>CONVERT_TZ(dt,from_tz,to_tz)</td></tr>
</tbody>
<thead>
<tr><th>$\textsf{**}\hspace{1em}$</</th>
    <th>$\textsf{**}\hspace{23em}$</</th>
    <th>$\textsf{**}\hspace{6em}$</</th>
    <th>$\textsf{**}\hspace{1em}$</</th>
    <th>$\textsf{**横スクロール用ダミー行}\hspace{40em}$</</th>
</thead>
</table>

### 参考
- [MySQL | CONVERT_TZ関数(指定した日時のタイムゾーンを変更した値を取得する)](https://www.javadrive.jp/mysql/function/index48.html)
- 

----

# Bigquery版

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


# 参考
※1（参考） https://qiita.com/JackSweet/items/04c2e47f6ff44a2248ec 
- [Bigqueryの日時に関係する関数全部試してみた ①Date編 #BigQuery - Qiita](https://qiita.com/hogeta_/items/1416135863a023a09127)