MySQLの時間値をあるタイムゾーンから別のタイムゾーンに変換する必要がある場合があります。 convert_tz()関数を使用してクエリでMySQLタイムゾーンを変更する方法は次のとおりです。
MySQLクエリでタイムゾーンを変換する
CONVERT_TZ関数を使用して、クエリのMySQLタイムゾーンを変更します。 CONVERT_TZ関数の構文は次のとおりです。
convert_tz(value, from_timezone, to_timezone)
上記の関数では、変換する時間値、この値を変換するタイムゾーン、および変換するタイムゾーンを指定する必要があります。
タイムゾーンは、オフセットまたはタイムゾーン名として指定できます。
ボーナスリード:MySQLサーバーのタイムゾーンを変更する方法
これは、UTCとESTにそれぞれ「+00:00」と「-05:00」のタイムゾーンオフセットを使用して、リテラル時間値をUTCからESTタイムゾーンに変換する例です。
mysql> select convert_tz('2020-09-17 03:00:00','+00:00','-05:00'); +-----------------------------------------------------+ | convert_tz('2020-09-17 03:00:00','+00:00','-05:00') | +-----------------------------------------------------+ | 2020-09-16 22:00:00 | +-----------------------------------------------------+
オフセットの代わりにタイムゾーンを指定することもできます。ただし、この場合、サーバーにMySQLタイムゾーンをダウンロードしてインストールする必要があります。オフセット値の代わりにタイムゾーン名を指定して、ESTをパリのタイムゾーンに変換する例を次に示します。
mysql> select convert_tz('2020-09-17 03:00:00','US/Eastern','Europe/Paris');
ボーナスリード:MySQLがデータベースにインデックスを表示
また、CONVERT_TZ関数でMySQLの日付、時刻、および日時関数を変換することもできます。 NOW()関数を使用して取得した現在時刻のタイムゾーンをUTCからESTに変更する例を次に示します
mysql> select convert_tz(now(),'+00:00','-05:00'); +-------------------------------------+ | convert_tz(now(),'+00:00','-05:00') | +-------------------------------------+ | 2020-09-17 04:45:07 | +-------------------------------------+
ボーナスリード:MySQLデータベースを比較する方法
同様に、convert_tzを使用して、日付、時刻、日時の列を変換することもできます。 order_dateのタイムゾーンを変更する例を次に示します。 販売の列 表、UTCからESTまで
mysql> select convert_tz(order_date,'+00:00','-05:00') from sales; +------------------------------------------+ | convert_tz(order_date,'+00:00','-05:00') | +------------------------------------------+ | 2020-05-03 19:00:00 | | 2020-05-04 19:00:00 | | 2020-05-05 19:00:00 | | ... | | 2020-05-13 19:00:00 | +------------------------------------------+
うまくいけば、クエリでMySQLのタイムゾーンを変更し、日付、時刻、日時の値をあるタイムゾーンから別のタイムゾーンに変換できるようになりました。
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日それを試してみてください!