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)を代わりに使用することをおすすめします。
-
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文を使って、「日/月/年 時:分:秒」
-
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