MySQLで文字列を日付に変換する方法|STR_TO_DATE()関数の使い方を解説
MySQLで日付を解析するには?
MySQLで文字列形式の日付データを解析(パース)するには、STR_TO_DATE()関数を使用します。この関数を使うことで、「10-Nov-18」のようなテキスト形式の日付を、正しいDATE型の値(2018-11-10)へと変換できます。
STR_TO_DATE()の基本構文
構文は以下の通りです。
SELECT STR_TO_DATE(カラム名, 'フォーマット') AS 任意の別名 FROM テーブル名;
上記の「フォーマット」部分には、入力される文字列の日付形式に合わせた指定子を記述します。例えば「10-Nov-18」という形式の場合は '%d-%b-%y' を使用します。
- %d … 日(01〜31)
- %b … 月の省略名(Jan、Feb など)
- %y … 2桁の年(00〜99)
実際に試してみよう
ここからは、サンプルテーブルを作成して動作を確認していきます。
1. テーブルの作成
まず、日付を文字列(VARCHAR型)として格納するテーブルを作成します。
mysql> CREATE TABLE ParseDateDemo
-> (
-> yourDate VARCHAR(200)
-> );
Query OK, 0 rows affected (0.55 sec)2. データの挿入
次に、INSERT文でサンプルデータを登録します。
mysql> INSERT INTO ParseDateDemo VALUES('10-Nov-18');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO ParseDateDemo VALUES('15-Nov-18');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO ParseDateDemo VALUES('10-Dec-18');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO ParseDateDemo VALUES('10-Aug-17');
Query OK, 1 row affected (0.14 sec)3. 登録データの確認
SELECT文でテーブルの中身を表示します。
mysql> SELECT * FROM ParseDateDemo;
実行結果は以下の通りです。
+-----------+ | yourDate | +-----------+ | 10-Nov-18 | | 15-Nov-18 | | 10-Dec-18 | | 10-Aug-17 | +-----------+ 4 rows in set (0.00 sec)
4. STR_TO_DATE()で日付を解析する
それでは、STR_TO_DATE()関数を使って文字列を日付に変換してみましょう。
mysql> SELECT STR_TO_DATE(yourDate, '%d-%b-%y') AS DateNumber FROM ParseDateDemo;
実行結果:
+------------+ | DateNumber | +------------+ | 2018-11-10 | | 2018-11-15 | | 2018-12-10 | | 2017-08-10 | +------------+ 4 rows in set (0.02 sec)
まとめ
STR_TO_DATE()関数を使えば、VARCHAR型などで保存された文字列の日付データを、標準的な日付形式(YYYY-MM-DD)に簡単に変換できます。CSVインポートなどで文字列として取り込んだ日付データを扱う際や、日付順のソート・範囲検索を行いたい場合に非常に便利な関数です。入力文字列の形式に合わせてフォーマット指定子を正しく設定することがポイントです。
-
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文を使って、「日/月/年 時:分:秒」
-
JSPで日付を解析する方法|fmt:parseDateタグの使い方と属性一覧
JSPで文字列として表現された日付データをDateオブジェクトに変換したい場合、JSTL(JSP Standard Tag Library)が提供する<fmt:parseDate>タグを使用します。このタグを使うことで、指定したパターンやロケールに従って日付文字列を正確に解析できます。fmt:parseDateタグの主な属性<fmt:parseDate>タグには、以下の属性が用意されています。属性説明必須デフォルト値value解析対象となる日付の値いいえタグのボディtypeDATE(日付)、TIME(時刻)、BOTH(両方)のいずれかを指定いいえdatedateStyl