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

MySQLで文字列を日時(DATETIME)に変換する方法【STR_TO_DATE活用術】

MySQLでは、STR_TO_DATE()関数とフォーマット指定子を組み合わせることで、VARCHAR型などで文字列として保存されている日付・時刻データを、DATETIME型に変換することができます。

基本構文

フォーマット指定子を使用した基本構文は以下の通りです。

select str_to_date(yourColumnName,'%d/%m/%Y %h:%i %p') as anyAliasName from yourTableName;

主なフォーマット指定子の意味

  • %d:日(2桁)
  • %m:月(2桁)
  • %Y:年(4桁)
  • %h:時(12時間制・2桁)
  • %i:分(2桁)
  • %p:午前/午後(AM/PM)

実際に試してみよう

ステップ1:テーブルを作成する

まず、日付文字列を格納するテーブルを作成します。

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

ステップ2:レコードを挿入する

INSERTコマンドを使って、サンプルデータを登録します。

mysql> insert into DemoTable values('11/02/2019 10:35');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable values('21/12/2018 12:01');
Query OK, 1 row affected (0.19 sec)

ステップ3:登録内容を確認する

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

mysql> select *from DemoTable;

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

+------------------+
| DueDate          |
+------------------+
| 11/02/2019 10:35 |
| 21/12/2018 12:01 |
+------------------+
2 rows in set (0.00 sec)

文字列から日時への変換クエリ

それでは、STR_TO_DATE()関数を使って文字列を日時(DATETIME型)に変換してみましょう。

mysql> select str_to_date(DueDate,'%d/%m/%Y %h:%i %p') as ConvertDate from DemoTable;

変換結果

+---------------------+
| ConvertDate         |
+---------------------+
| 2019-02-11 10:35:00 |
| 2018-12-21 00:01:00 |
+---------------------+
2 rows in set (0.00 sec)

ポイント解説

このように、「11/02/2019 10:35」のような文字列が「2019-02-11 10:35:00」という標準的なDATETIME形式に変換されました。

注目すべきは2行目の結果です。「21/12/2018 12:01」が「00:01:00」に変換されています。これは、フォーマット指定子%hが12時間制であることに加え、元の文字列にAM/PMの情報が含まれていないため、「12時」が午前0時として解釈されたためです。24時間制の時刻を扱いたい場合は、%H(00〜23)を代わりに使用することをおすすめします。

  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. C#でリスト(List)を文字列に変換する方法をわかりやすく解説

    C#では、string.Joinメソッドを使うことで、リスト(List)の要素を簡単にひとつの文字列に結合できます。ここでは、基本的な手順とサンプルコードを紹介します。 手順1:リストを宣言する まず、文字列型のリストを宣言します。 List<string> l = new List<string>(); 手順2:リストに要素を追加する 次に、Addメソッドを使ってリストに要素を追加していきます。 // 要素の追加 l.Add(Accessories); l.Add(Footwear); l.Add(Watches); 手順3:リストを文字列に変換する string.J