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

MySQLで文字列を24時間形式の日時に変換する方法【STR_TO_DATE関数】

MySQLで文字列を24時間形式に変換するには?

MySQLで文字列として保存された日時データを24時間形式の日時(DATETIME)に変換するには、STR_TO_DATE()関数を使用します。この関数の第2引数には、以下のような書式指定子を渡します。

'%Y-%m-%d %H:%i:%s'

各書式指定子の意味は次のとおりです。

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

基本構文

SELECT STR_TO_DATE(カラム名, '%Y-%m-%d %H:%i:%s') FROM テーブル名;

サンプルテーブルの作成

まず、文字列型(VARCHAR)カラムを持つテーブルを作成します。

mysql> create table DemoTable (ArrivalDate varchar(200));
Query OK, 0 rows affected (0.57 sec)

続いて、INSERT文でサンプルデータをいくつか挿入します。

mysql> insert into DemoTable values('2019-01-31 15:45:23');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('2012-12-12 20:30:26');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values('2016-06-07 21:04:05');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2017-02-03 19:24:32');
Query OK, 1 row affected (0.27 sec)

登録済みデータの確認

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

mysql> select *from DemoTable;

実行結果は以下のとおりです。現時点では、すべての値が文字列として保存されています。

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-01-31 15:45:23 |
| 2012-12-12 20:30:26 |
| 2016-06-07 21:04:05 |
| 2017-02-03 19:24:32 |
+---------------------+
4 rows in set (0.00 sec)

STR_TO_DATE()で24時間形式の日時へ変換する

それでは、STR_TO_DATE()関数を使って、文字列を24時間形式の日時データに変換してみます。

mysql> select str_to_date(ArrivalDate,'%Y-%m-%d %H:%i:%s') AS `24HourFormat` from DemoTable;

実行結果:

+---------------------+
| 24HourFormat        |
+---------------------+
| 2019-01-31 15:45:23 |
| 2012-12-12 20:30:26 |
| 2016-06-07 21:04:05 |
| 2017-02-03 19:24:32 |
+---------------------+
4 rows in set (0.00 sec)

まとめ

STR_TO_DATE()関数を使えば、VARCHAR型などで保存されている文字列の日時データを、DATETIME型相当の24時間形式へ簡単に変換できます。AS句で別名を付ければ、結果セットの列見出しもわかりやすくなります。また、変換後の値は日時として認識されるため、日付による比較や並べ替えなどの処理にもそのまま活用できるのがメリットです。

  1. 【JavaScript】MySQLのDATETIME値をJSON形式に変換する方法を解説

    MySQL DATETIME値をJSON形式に変換する基本手法MySQLのDATETIME値をJavaScriptでJSON形式に変換するには、JSON.stringify()メソッドを使用します。手順としては、まずDateオブジェクトとして日時を取得し、年・月・日・時・分・秒をそれぞれ取り出してオブジェクトにまとめ、最後にJSON文字列へ変換します。サンプルコード以下は、MySQLのDATETIME値をJSON形式に変換するJavaScriptのコード例です。<script>var mySQLDateTime = new Date(Fri Sep 06 2019 22:54:48

  2. 【Python入門】タイムスタンプを日時オブジェクトに変換する方法をわかりやすく解説

    Pythonでは、標準ライブラリの datetime モジュールに含まれる fromtimestamp() 関数を使うことで、UNIXタイムスタンプ(エポック秒)から日時オブジェクトへ簡単に変換できます。この関数はタイムスタンプを引数として受け取り、それに対応する datetime オブジェクトを返します。 基本の使い方:fromtimestamp() 以下の例では、UNIXタイムスタンプ「1500000000」を日時オブジェクトに変換し、読みやすい形式の文字列として出力しています。 import datetime timestamp = datetime.datetime.fromtime