MySQLのGET_FORMAT()関数をDATE_FORMAT()・STR_TO_DATE()関数と組み合わせる方法
MySQLのGET_FORMAT()関数は、DATE_FORMAT()関数やSTR_TO_DATE()関数と組み合わせて使うと非常に便利です。GET_FORMAT()関数は、国や地域ごとの標準的な日付・時刻の書式文字列を返すため、これらの関数と併用することで、日付データの整形や解析を柔軟かつ簡潔に行えます。
DATE_FORMAT()関数との組み合わせ
GET_FORMAT()関数をDATE_FORMAT()関数と組み合わせると、特定の日付・時刻・日時を、GET_FORMAT()関数が返す書式に従って整形して表示できます。
mysql> Select DATE_FORMAT('2017-10-22',GET_FORMAT(date,'USA'))AS 'DATE IN USA FORMAT';
+--------------------+
| DATE IN USA FORMAT |
+--------------------+
| 10.22.2017 |
+--------------------+
1 row in set (0.00 sec)上記のクエリでは、指定した日付「2017-10-22」が、アメリカ(USA)の標準形式である「10.22.2017」(月.日.年)に変換されて表示されます。
また、テーブルに保存されている日付値を、特定の書式で取得することも可能です。
mysql> Select * from date_testing1; +-------+------------+ | Name | Date | +-------+------------+ | Ram | 2017-05-03 | | Shyam | 2003-10-31 | +-------+------------+ 2 rows in set (0.07 sec) mysql> Select Name, Date, DATE_FORMAT(date,GET_FORMAT(date,'USA'))AS 'DATE IN US FORMAT' from date_testing1 Where Name='Ram'; +------+------------+-------------------+ | Name | Date | DATE IN US FORMAT | +------+------------+-------------------+ | Ram | 2017-05-03 | 05.03.2017 | +------+------------+-------------------+ 1 row in set (0.00 sec)
この例では、テーブルdate_testing1から名前が「Ram」の行を抽出し、その日付をアメリカ形式で表示しています。WHERE句と組み合わせれば、必要なレコードだけを目的の書式で出力できるのがポイントです。
STR_TO_DATE()関数との組み合わせ
GET_FORMAT()関数は、DATE_FORMAT()関数と同様の使い方で、STR_TO_DATE()関数とも組み合わせられます。この場合、GET_FORMAT()が返す書式に従って、文字列を日付値として解析(パース)します。
mysql> Select STR_TO_DATE('22.10.2017',GET_FORMAT(DATE,'EUR'))AS 'EUROPEAN FORMAT';
+------------------+
| EUROPEAN FORMAT |
+------------------+
| 2017-10-22 |
+------------------+
1 row in set (0.00 sec)上記のクエリでは、ヨーロッパ(EUR)形式の文字列「22.10.2017」が、MySQLの標準的な日付形式「2017-10-22」(年-月-日)に変換されています。
このようにGET_FORMAT()関数を活用すれば、地域ごとの日付書式を個別に定義する必要がなくなり、国際化対応の日付処理をシンプルに実装できます。表示にはDATE_FORMAT()、入力の解析にはSTR_TO_DATE()と、用途に応じて使い分けるのが効果的です。
-
MySQLのDATE_FORMAT()関数で日付形式を自在に変更する方法
MySQLのDATE_FORMAT()関数とはMySQLでは、DATE_FORMAT()関数を使うことで、日付データを任意の形式に変換して表示できます。日付を「日/月/年」や「年月日」など、用途に応じたフォーマットに整えたい場合に非常に便利な関数です。基本構文SELECT DATE_FORMAT(カラム名, 書式指定子) FROM テーブル名;第1引数に対象のカラム名、第2引数に希望する形式を表す書式指定子を渡します。実際に試してみよう1. サンプルテーブルを作成するまずは、出荷日(ShippingDate)を格納するテーブルを作成します。mysql> CREATE TABLE Demo
-
MySQLのDATE_FORMAT()とSTR_TO_DATE()を使って日付をフォーマットする方法
はじめにMySQLでは、STR_TO_DATE()関数とDATE_FORMAT()関数を組み合わせることで、「August 04,2019」のような文字列として保存された日付を「2019-08-04」のような標準的な形式(YYYY-MM-DD)に変換できます。各関数の役割は以下の通りです。STR_TO_DATE(): 指定したフォーマットに従って文字列をDATE型に変換するDATE_FORMAT(): 日付の値を指定したフォーマットの文字列に整形するそれでは、実際の手順を見ていきましょう。手順1:テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create tab