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

MySQLでタイムスタンプを日時(DATETIME)に変換する方法|FROM_UNIXTIME関数の使い方を解説

MySQLでは、FROM_UNIXTIME()関数を使うことで、UNIXタイムスタンプを簡単に日時(DATETIME)形式へ変換できます。この記事では、実際にテーブルを作成し、int型で保存されたタイムスタンプを日時に変換する手順を順番に解説します。

1. int型カラムを持つテーブルを作成する

まずは、タイムスタンプを格納するためのint型カラムを持つテーブルを作成します。

mysql> create table TimestamptoDateDemo
   -> (
   ->  YourTimeStamp int(11)
   -> );
Query OK, 0 rows affected (0.57 sec)

2. テーブルにレコードを挿入する

次に、UNIXタイムスタンプの値をテーブルに挿入します。

mysql> insert into TimestamptoDateDemo values(1389453221);
Query OK, 1 row affected (0.23 sec)

3. 登録済みレコードを確認する

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

mysql> select * from TimestamptoDateDemo;

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

+---------------+
| YourTimeStamp |
+---------------+
|    1389453221 |
+---------------+
1 row in set (0.00 sec)

4. FROM_UNIXTIME()でタイムスタンプを日時に変換する

タイムスタンプを日時に変換する基本構文は以下のとおりです。

SELECT from_unixtime(yourColumnName) FROM yourTableName;

実際にクエリを実行してみます。

mysql> select from_unixtime(YourTimeStamp) from TimestamptoDateDemo;

実行結果:

+------------------------------+
| from_unixtime(YourTimeStamp) |
+------------------------------+
| 2018-09-11 20:43:41          |
+------------------------------+
1 row in set (0.04 sec)

このように、数値だけだったタイムスタンプが「2018-09-11 20:43:41」という読みやすい日時形式に変換されました。

5. フォーマットを指定して日時を表示する

FROM_UNIXTIME()関数は、第2引数にフォーマット指定子を渡すことで、任意の表示形式に整えることも可能です。

select from_unixtime(YourColumnName, '%Y %D %M %h:%i:%s') from yourTableName;

実行結果:

+---------------------------------------------------+
| from_unixtime(YourTimeStamp, '%Y %D %M %h:%i:%s') |
+---------------------------------------------------+
| 2018 11th September 08:43:41                      |
+---------------------------------------------------+
1 row in set (0.03 sec)

フォーマット指定子の意味は以下のとおりです。

  • %Y:年(4桁)
  • %D:日にち(英語の序数付き。例:11th)
  • %M:月名(英語表記。例:September)
  • %h:時(12時間制)
  • %i:分
  • %s:秒

用途に応じてフォーマット指定子を組み合わせれば、「YYYY-MM-DD HH:MM:SS」以外のさまざまな形式で日時を出力できます。ログ解析やレポート作成など、タイムスタンプを人間が読みやすい形に整形したい場面でぜひ活用してください。

  1. Pythonで日時をUTCタイムスタンプに変換する方法を徹底解説

    Pythonでは、datetimeモジュールを使うことで、日時(datetime)をUTCタイムスタンプへ簡単に変換できます。すでにdatetimeオブジェクトがUTCとして作成されている場合は、timestamp()メソッドを呼び出すだけでUTCタイムスタンプを取得できます。このメソッドは、エポック(1970年1月1日00:00:00 UTC)からの経過秒数を返します。 一方、datetimeオブジェクトがローカルタイムゾーンで作成されている場合は、まずreplace()メソッドでタイムゾーン情報をUTCに置き換えてから、タイムスタンプを取得する必要があります。 例:timezone.utc

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

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