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() 関数を使用します。用途に応じて両者を使い分けるとよいでしょう。
-
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」形式に整形
-
MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法
MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;