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

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文を使って、「日/月/年 時:分:秒」形式の文字列データを登録します。

mysql> insert into DemoTable2010 values('12/10/2019 12:34:00');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable2010 values('12/12/2011 11:00:20');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable2010 values('31/01/2017 11:00:20');
Query OK, 1 row affected (0.23 sec)

登録データの確認

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

mysql> select * from DemoTable2010;

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

+---------------------+
| DueDate             |
+---------------------+
| 12/10/2019 12:34:00 |
| 12/12/2011 11:00:20 |
| 31/01/2017 11:00:20 |
+---------------------+
3 rows in set (0.00 sec)

STR_TO_DATE()で日付形式に変換する

ここで本題のクエリです。STR_TO_DATE()関数を使い、文字列の日付をDATETIME形式へ変換します。

mysql> select str_to_date(DueDate,'%d/%m/%Y %k:%i') from DemoTable2010;

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

+---------------------------------------+
| str_to_date(DueDate,'%d/%m/%Y %k:%i') |
+---------------------------------------+
| 2019-10-12 12:34:00                   |
| 2011-12-12 11:00:00                   |
| 2017-01-31 11:00:00                   |
+---------------------------------------+
3 rows in set, 3 warnings (0.00 sec)

書式指定子の意味

STR_TO_DATE()の第2引数には、元の文字列の形式に合わせた書式指定子を指定します。今回使用した指定子は以下の通りです。

  • %d … 日(2桁)
  • %m … 月(2桁)
  • %Y … 年(4桁)
  • %k … 時(24時間表記)
  • %i … 分(2桁)

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

  1. MySQLの日付をJavaScriptの日付に変換する方法をわかりやすく解説

    MySQLから取得した日付文字列(例:2017-12-31 11:55:17)をJavaScriptのDateオブジェクトに変換するには、Date.parseメソッドを使用するのが一般的です。この記事では、具体的な変換手順とサンプルコードを紹介します。 ハイフンをスラッシュに置き換える理由 MySQLの日付形式は「YYYY-MM-DD HH:MM:SS」ですが、ブラウザによってはハイフン区切りの日付文字列を正しく解析できない場合があります。特にSafariなど一部のブラウザでは「Invalid Date」エラーが発生することがあるため、replaceメソッドでハイフン(-)をスラッシュ(/)

  2. Androidでミリ秒を日付形式に変換する方法【サンプルコード付き】

    この記事では、Androidアプリ開発においてミリ秒(long型のタイムスタンプ)を日付形式に変換する方法を、実際のサンプルコードとともに解説します。ミリ秒から日付への変換には、Java標準のSimpleDateFormatクラスを使用します。非常にシンプルな実装なので、初心者の方でもすぐに理解できるでしょう。実装手順ステップ1:新規プロジェクトを作成するAndroid Studioを開き、「File」⇒「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェクトのセットアップを完了させてください。ステップ2:レイアウトファイル(activity_