MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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()と、用途に応じて使い分けるのが効果的です。

  1. MySQLのDATE_FORMAT()関数で日付形式を自在に変更する方法

    MySQLのDATE_FORMAT()関数とはMySQLでは、DATE_FORMAT()関数を使うことで、日付データを任意の形式に変換して表示できます。日付を「日/月/年」や「年月日」など、用途に応じたフォーマットに整えたい場合に非常に便利な関数です。基本構文SELECT DATE_FORMAT(カラム名, 書式指定子) FROM テーブル名;第1引数に対象のカラム名、第2引数に希望する形式を表す書式指定子を渡します。実際に試してみよう1. サンプルテーブルを作成するまずは、出荷日(ShippingDate)を格納するテーブルを作成します。mysql> CREATE TABLE Demo

  2. 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