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

MySQLのSELECTクエリでDD/MM/YYYY形式の日付を扱う方法(STR_TO_DATE関数の使い方)

MySQLでDD/MM/YYYY形式の日付を変換するには?

MySQLでは、STR_TO_DATE() 関数を使用することで、「26/11/2018」のような DD/MM/YYYY 形式の日付文字列を、正しい日付型に変換して表示できます。

基本の構文は以下のとおりです。

SELECT STR_TO_DATE(カラム名, '%d/%m/%Y') AS 任意の別名 FROM テーブル名;

それでは、実際の例を見ながら理解していきましょう。

1. サンプルテーブルを作成する

まずは、日付を文字列(varchar)として保存するテーブルを作成します。

mysql> create table DateFormatDemo
    -> (
       -> IssueDate varchar(100)
    -> );
Query OK, 0 rows affected (0.54 sec)

2. 日付データを挿入する

次に、DD/MM/YYYY形式の日付文字列をテーブルに挿入します。

mysql> insert into DateFormatDemo values('26/11/2018');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DateFormatDemo values('27/11/2018');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DateFormatDemo values('2/12/2018');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DateFormatDemo values('3/12/2018');
Query OK, 1 row affected (0.14 sec)

3. 挿入したデータを確認する

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

mysql> select *from DateFormatDemo;

実行結果は以下のとおりです。現時点では、日付は単なる文字列として保存されていることがわかります。

+------------+
| IssueDate  |
+------------+
| 26/11/2018 |
| 27/11/2018 |
| 2/12/2018  |
| 3/12/2018  |
+------------+
4 rows in set (0.00 sec)

4. STR_TO_DATE()で文字列を日付に変換する

ここで、冒頭で紹介した構文を実装し、文字列を日付形式に変換します。

mysql> select STR_TO_DATE(IssueDate, '%d/%m/%Y') StringToDateFormatExample from DateFormatDemo;

実行結果:

+---------------------------+
| StringToDateFormatExample |
+---------------------------+
| 2018-11-26               |
| 2018-11-27               |
| 2018-12-02               |
| 2018-12-03               |
+---------------------------+
4 rows in set (0.00 sec)

ポイント解説

  • %d … 日(01〜31)を表すフォーマット指定子です。
  • %m … 月(01〜12)を表すフォーマット指定子です。
  • %Y … 4桁の年(例:2018)を表すフォーマット指定子です。

このように、STR_TO_DATE() の第2引数に入力文字列の形式('%d/%m/%Y')を指定することで、MySQLが文字列を正しく日付として解釈し、標準的な「YYYY-MM-DD」形式で出力してくれます。

なお、逆に日付型の値を任意の形式の文字列として表示したい場合は、DATE_FORMAT() 関数を使用します。用途に応じて両者を使い分けるとよいでしょう。

  1. PHP・MySQLで日付形式をdd/mm/yyyyに変更する方法

    PHPやMySQLでは、日付の表示形式を自由に変更できます。本記事では、日付を「dd/mm/yyyy(日/月/年)」形式に変換する方法を、PHPとMySQLそれぞれのケースについて解説します。PHPで日付形式を変更する方法PHPでは、date()関数を使って日付形式を簡単に変更できます。基本構文は以下の通りです。date(d/m/Y, 日時の変数);また、文字列を日付として扱う場合は、strtotime()関数を使用します。この関数は、日付を表す文字列をUnixタイムスタンプに変換してくれるため、date()関数と組み合わせて使うのが一般的です。以下は、日時を「dd/mm/yyyy」形式に整形

  2. MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法

    MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;