SQLで日付を綺麗にフォーマット!MySQLのSELECTクエリでISO8601形式に変換
MySQLでSELECTクエリを使って日付をISO 8601形式にフォーマットする方法
このチュートリアルでは、MySQLのSELECTクエリを使用して、データベース内の日付をISO 8601形式にフォーマットする方法を説明します。ISO 8601は、日付と時刻を表す国際標準形式です。
前提知識
このチュートリアルを理解するには、以下の知識が必要です。
- MySQLデータベースの基本的な知識
- SELECTクエリの使い方
- ISO 8601形式
手順
- 必要なライブラリをインポートする
SELECT *
FROM your_table;
- FROM_UNIXTIME関数を使用して、UNIXタイムスタンプをISO 8601形式に変換する
SELECT
FROM_UNIXTIME(your_column) AS formatted_date
FROM your_table;
例
次のクエリは、your_table
テーブルの your_column
列にあるUNIXタイムスタンプをISO 8601形式に変換し、formatted_date
という名前の新しい列に格納します。
SELECT
FROM_UNIXTIME(your_column) AS formatted_date
FROM your_table;
オプション
%Y-%m-%dT%H:%M:%SZ
のように、FROM_UNIXTIME
関数にフォーマット文字列を指定して、ISO 8601形式の書式をカスタマイズすることができます。詳細は、MySQLの公式ドキュメントを参照してください。- タイムゾーンを指定するには、
CONVERT_TZ
関数を使用することができます。詳細は、MySQLの公式ドキュメントを参照してください。
-- データベースに接続する
USE my_database;
-- SELECTクエリを実行する
SELECT
FROM_UNIXTIME(date_column) AS formatted_date
FROM my_table;
このコードは以下の動作をします。
USE my_database;
ステートメントを使用して、my_database
という名前のデータベースに接続します。SELECT
ステートメントを使用して、my_table
テーブルのdate_column
列のデータを選択します。- 変換された日付を
formatted_date
という名前の新しい列に格納します。 - 結果をテーブル形式で表示します。
注記
- このコードは、
my_table
という名前のテーブルとdate_column
という名前の列が存在することを前提としています。 - 実際のコードでは、データベース名、テーブル名、列名を置き換える必要があります。
- ISO 8601形式の書式をカスタマイズするには、
FROM_UNIXTIME
関数にフォーマット文字列を指定することができます。詳細は、MySQLの公式ドキュメントを参照してください。
このサンプルコードを応用することで、様々な状況に合わせて、データベース内の日付をISO 8601形式に変換することができます。
MySQLでSELECTクエリを使って日付をISO 8601形式にフォーマットするその他の方法
DATE_FORMAT
関数は、日付と時刻の値をフォーマットするために使用することができます。この関数を使用して、日付をISO 8601形式に変換することもできます。
SELECT
DATE_FORMAT(your_column, '%Y-%m-%dT%H:%M:%SZ') AS formatted_date
FROM your_table;
このクエリは、FROM_UNIXTIME 関数を使用する例とほぼ同じ結果を返します。
STR_TO_DATE 関数と CONVERT_TZ 関数を使用する
STR_TO_DATE
関数は、文字列を日付と時刻の値に変換するために使用することができます。CONVERT_TZ
関数は、日付と時刻の値のタイムゾーンを変換するために使用することができます。これらの2つの関数を使用して、文字列形式の日付をISO 8601形式に変換することができます。
SELECT
CONVERT_TZ(STR_TO_DATE(your_string_column, '%Y-%m-%dT%H:%M:%S'), @@session.time_zone) AS formatted_date
FROM your_table;
このクエリは、your_string_column 列の値がすでにISO 8601形式である場合にのみ使用できます。
上記以外にも、MySQLでSELECTクエリを使用して日付をISO 8601形式にフォーマットする方法があります。使用する方法は、状況によって異なります。
最適な方法を選択するには
- 変換する日付の形式
- タイムゾーンの考慮の必要性
などを考慮する必要があります。
mysql database date-format