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

日付形式をMySQLの日付に正しく変換するには?STR_TO_DATE()関数の使い方

はじめに

文字列として保存された日付をMySQLの日付型(DATETIME型)に変換するには、STR_TO_DATE()関数を使用します。この関数に適切な書式指定子を渡すことで、さまざまな形式の日付文字列を正確に変換できます。

テーブルの作成

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
-> (
-> DueDatetime varchar(100)
-> );
Query OK, 0 rows affected (1.03 sec)

レコードの挿入

INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values('22-06-2019 14:40');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable values('02-07-2015 13:10');
Query OK, 1 row affected (0.18 sec)

レコードの確認

SELECT文でテーブル内のすべてのレコードを表示してみます。

mysql> select *from DemoTable;

出力結果

上記のクエリを実行すると、次のような出力が得られます。

+------------------+
| DueDatetime      |
+------------------+
| 22-06-2019 14:40 |
| 02-07-2015 13:10 |
+------------------+
2 rows in set (0.00 sec)

日付への変換クエリ

続いて、STR_TO_DATE()関数を使って文字列を日付に変換するクエリを見ていきましょう。

mysql> select str_to_date(DueDatetime,'%d-%m-%Y %H:%i') from DemoTable;

出力結果

実行結果は以下の通りです。

+-------------------------------------------+
| str_to_date(DueDatetime,'%d-%m-%Y %H:%i') |
+-------------------------------------------+
| 2019-06-22 14:40:00                       |
| 2015-07-02 13:10:00                       |
+-------------------------------------------+
2 rows in set (0.00 sec)

書式指定子の解説

この例で使用している主な書式指定子は以下の通りです。

  • %d:日(01〜31)
  • %m:月(01〜12)
  • %Y:4桁の年(例:2019)
  • %H:時(00〜23)
  • %i:分(00〜59)

このように、元の文字列「22-06-2019 14:40」が「2019-06-22 14:40:00」という標準的なDATETIME形式に変換されました。STR_TO_DATE()関数を使えば、任意の形式の日付文字列でも、対応する書式指定子を正しく指定するだけで、簡単にMySQLの日付型へ変換できます。

  1. VARCHARデータをMySQLの日付形式に変換する方法

    VARCHAR型の日付文字列をDATE型に変換するにはMySQLでは、VARCHAR型として保存されている日付データを正式な日付形式に変換する場合、STR_TO_DATE() 関数を使用します。この関数は、文字列と書式指定子(フォーマット指定子)を組み合わせることで、任意の形式の文字列を日付値へと変換できる便利な機能です。以下、具体的な手順をサンプルとともに解説します。1. サンプルテーブルの作成まず、VARCHAR型のカラムを持つテーブルを作成します。mysql> create table DemoTable1989 ( DueDate varchar(20)

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