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

UnixタイムスタンプからMySQLのタイムスタンプ値へ変換する方法

概要

MySQLでは、FROM_UNIXTIME()関数を使うことで、Unixタイムスタンプ(1970年1月1日からの経過秒数)をTIMESTAMP型やDATETIME型の日時値に簡単に変換できます。

基本的な使い方

mysql> SELECT FROM_UNIXTIME(1508622563);
+-----------------------------+
| FROM_UNIXTIME(1508622563)   |
+-----------------------------+
| 2017-10-22 03:19:23         |
+-----------------------------+
1 row in set (0.00 sec)

上記の例では、Unixタイムスタンプ「1508622563」が「2017-10-22 03:19:23」という読みやすい日時値に変換されています。なお、変換結果はMySQLサーバーに設定されているタイムゾーンの影響を受ける点に注意してください。

表示形式を指定する

FROM_UNIXTIME()関数は、第2引数にフォーマット文字列を渡すことで、任意の形式で日時を出力することも可能です。

mysql> SELECT FROM_UNIXTIME(1508622563, '%Y年%m月%d日 %H時%i分%s秒');
+----------------------------------------------------------+
| FROM_UNIXTIME(1508622563, '%Y年%m月%d日 %H時%i分%s秒')   |
+----------------------------------------------------------+
| 2017年10月22日 03時19分23秒                               |
+----------------------------------------------------------+

逆変換について

逆に、日時値からUnixタイムスタンプを取得したい場合はUNIX_TIMESTAMP()関数を使用します。

mysql> SELECT UNIX_TIMESTAMP('2017-10-22 03:19:23');
+---------------------------------------+
| UNIX_TIMESTAMP('2017-10-22 03:19:23') |
+---------------------------------------+
| 1508622563                            |
+---------------------------------------+

このように、FROM_UNIXTIME()とUNIX_TIMESTAMP()を組み合わせることで、UnixタイムスタンプとMySQLの日時値を双方向に自由に変換できます。

  1. MySQLでYYYY-MM-DD形式の日付をUNIXタイムスタンプに変換する方法

    ```html MySQLで日付(YYYY-MM-DD形式)をUNIXタイムスタンプに変換するには、UNIX_TIMESTAMP() 関数を使用します。この関数は、指定した日時を「1970年1月1日 00:00:00 UTC」からの経過秒数に変換してくれます。テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable1997 ( DueDate date ); Query OK, 0 rows affected (0.58 sec)レコードの挿入INSERTコマンドを使用して、いくつかのレコードをテーブルに挿入します。mysq

  2. Pythonで日付(datetime)をUnixタイムスタンプに変換する方法

    Pythonでは、標準ライブラリのdatetimeモジュールを使って、日時オブジェクトをUnixタイムスタンプ(UTCタイムスタンプ)に変換できます。すでにUTCのdatetimeオブジェクトを持っている場合は、timestamp()メソッドを呼び出すだけで、エポック(1970年1月1日 0時0分0秒 UTC)からの経過秒数を取得できます。 一方、datetimeオブジェクトがローカルタイムゾーンの状態になっている場合は、まずreplace()メソッドなどでタイムゾーン情報を明示的に設定してから、タイムスタンプを取得する必要があります。タイムゾーン情報がないまま変換すると、意図しない値になる可