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

UK形式(イギリス式)の日付をMySQLの日付型に変換する方法

UK形式の日付をMySQLに変換するには?

イギリスで一般的に使われている日付形式は「日-月-年」の順序です。例えば「10/11/2019」は2019年11月10日を意味します。この形式の文字列をMySQLの日付型に変換したい場合は、STR_TO_DATE() 関数を使用します。

基本構文

変換の構文は以下のとおりです。

SELECT STR_TO_DATE(対象カラム名, '%d/%m/%Y') FROM テーブル名;

フォーマット指定子の意味は次の通りです。

  • %d … 日(2桁)
  • %m … 月(2桁)
  • %Y … 年(4桁)

サンプルテーブルの作成

まず、UK形式の日付をVARCHAR型で格納するテーブルを作成します。

mysql> create table DemoTable728 (DueDate varchar(100));
Query OK, 0 rows affected (0.59 sec)

データの挿入

INSERT文を使って、いくつかのレコードを登録しましょう。

mysql> insert into DemoTable728 values('10/11/2019');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable728 values('31/01/2016');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable728 values('01/12/2015');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable728 values('11/03/2018');
Query OK, 1 row affected (0.16 sec)

登録データの確認

SELECT文ですべてのレコードを表示してみます。

mysql> select * from DemoTable728;

実行結果は以下のようになります。

+------------+
| DueDate    |
+------------+
| 10/11/2019 |
| 31/01/2016 |
| 01/12/2015 |
| 11/03/2018 |
+------------+
4 rows in set (0.00 sec)

UK形式からMySQL日付への変換クエリ

それでは、STR_TO_DATE()を使ってUK形式の日付をMySQLの日付形式(YYYY-MM-DD)に変換してみましょう。

mysql> select str_to_date(DueDate,'%d/%m/%Y') from DemoTable728;

実行結果は以下のとおりです。

+---------------------------------+
| str_to_date(DueDate,'%d/%m/%Y') |
+---------------------------------+
| 2019-11-10                      |
| 2016-01-31                      |
| 2015-12-01                      |
| 2018-03-11                      |
+---------------------------------+
4 rows in set (0.00 sec)

補足:DATE_FORMAT()との組み合わせ

変換した値を任意の表示形式に整形したい場合は、DATE_FORMAT() を組み合わせると便利です。例えば「2019年11月10日」という日本語風の表記にすることも可能です。

mysql> SELECT DATE_FORMAT(STR_TO_DATE(DueDate, '%d/%m/%Y'), '%Y年%m月%d日') AS 変換後の日付
    -> FROM DemoTable728;

また、変換結果をDATE型カラムに更新して保存したい場合は、UPDATE文と組み合わせて使用できます。

mysql> UPDATE DemoTable728
    -> SET DueDate = STR_TO_DATE(DueDate, '%d/%m/%Y');

このように、STR_TO_DATE()関数を使えば、UK形式をはじめとするさまざまな文字列の日付を簡単にMySQLの日付型へ変換できます。データ移行やCSVインポート時に特に役立つテクニックなので、ぜひ覚えておきましょう。

  1. VARCHARデータをMySQLの日付形式に変換する方法

    VARCHAR型の日付文字列をDATE型に変換するにはMySQLでは、VARCHAR型として保存されている日付データを正式な日付形式に変換する場合、STR_TO_DATE() 関数を使用します。この関数は、文字列と書式指定子(フォーマット指定子)を組み合わせることで、任意の形式の文字列を日付値へと変換できる便利な機能です。以下、具体的な手順をサンプルとともに解説します。1. サンプルテーブルの作成まず、VARCHAR型のカラムを持つテーブルを作成します。mysql> create table DemoTable1989 ( DueDate varchar(20)

  2. MySQLで日付形式を変換する方法|STR_TO_DATE()関数の使い方を解説

    MySQLでは、VARCHAR型などで保存された文字列の日付データを、正しい日付・時刻形式に変換したいケースがよくあります。そんなときに活躍するのが STR_TO_DATE() 関数です。この記事では、実際のSQL例とともに具体的な使い方を解説します。サンプルテーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec)テストデータの挿入INSERT文を使って、「日/月/年 時:分:秒」