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インポート時に特に役立つテクニックなので、ぜひ覚えておきましょう。
-
VARCHARデータをMySQLの日付形式に変換する方法
VARCHAR型の日付文字列をDATE型に変換するにはMySQLでは、VARCHAR型として保存されている日付データを正式な日付形式に変換する場合、STR_TO_DATE() 関数を使用します。この関数は、文字列と書式指定子(フォーマット指定子)を組み合わせることで、任意の形式の文字列を日付値へと変換できる便利な機能です。以下、具体的な手順をサンプルとともに解説します。1. サンプルテーブルの作成まず、VARCHAR型のカラムを持つテーブルを作成します。mysql> create table DemoTable1989 ( DueDate varchar(20)
-
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文を使って、「日/月/年 時:分:秒」