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

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インポートなどで文字列として取り込んだ日付データを扱う際や、日付順のソート・範囲検索を行いたい場合に非常に便利な関数です。入力文字列の形式に合わせてフォーマット指定子を正しく設定することがポイントです。

  1. 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文を使って、「日/月/年 時:分:秒」

  2. JSPで日付を解析する方法|fmt:parseDateタグの使い方と属性一覧

    JSPで文字列として表現された日付データをDateオブジェクトに変換したい場合、JSTL(JSP Standard Tag Library)が提供する<fmt:parseDate>タグを使用します。このタグを使うことで、指定したパターンやロケールに従って日付文字列を正確に解析できます。fmt:parseDateタグの主な属性<fmt:parseDate>タグには、以下の属性が用意されています。属性説明必須デフォルト値value解析対象となる日付の値いいえタグのボディtypeDATE(日付)、TIME(時刻)、BOTH(両方)のいずれかを指定いいえdatedateStyl