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

MySQLのタイムスタンプをUNIXタイムスタンプに変換する方法

MySQLで保存されている日時(TIMESTAMP型)をUNIXタイムスタンプ(エポック秒)に変換するには、UNIX_TIMESTAMP()関数を使用します。この関数は、指定した日時を「1970年1月1日00:00:00 UTC」からの経過秒数として返します。

基本構文

変換の基本的な構文は以下のとおりです。

SELECT unix_timestamp(カラム名) FROM テーブル名;

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable(
    Duetimestamp timestamp
);
Query OK, 0 rows affected (2.66 sec)

レコードの挿入

INSERTコマンドを使って、いくつかの日時データを登録します。

mysql> insert into DemoTable values(now());
Query OK, 1 row affected (1.53 sec)
mysql> insert into DemoTable values('2016-01-21 12:34:00');
Query OK, 1 row affected (0.73 sec)
mysql> insert into DemoTable values('2018-05-01 02:00:00');
Query OK, 1 row affected (0.42 sec)
mysql> insert into DemoTable values('2017-03-02 01:10:20');
Query OK, 1 row affected (10.19 sec)

登録内容の確認

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

mysql> select *from DemoTable;

実行結果は以下のようになります。

+---------------------+
| Duetimestamp        |
+---------------------+
| 2019-08-20 20:48:45 |
| 2016-01-21 12:34:00 |
| 2018-05-01 02:00:00 |
| 2017-03-02 01:10:20 |
+---------------------+
4 rows in set (0.00 sec)

タイムスタンプをUNIXタイムスタンプに変換するクエリ

それでは、実際にUNIX_TIMESTAMP()関数を使って変換を行います。

mysql> select unix_timestamp(Duetimestamp) from DemoTable;

実行結果は以下のとおりです。各日時が秒数(整数値)に変換されていることがわかります。

+------------------------------+
| unix_timestamp(Duetimestamp) |
+------------------------------+
| 1566314325                   |
| 1453359840                   |
| 1525120200                   |
| 1488397220                   |
+------------------------------+
4 rows in set (0.04 sec)

補足:逆変換について

なお、UNIXタイムスタンプから通常の日時に戻したい場合は、FROM_UNIXTIME()関数を使用します。例えば以下のように記述します。

mysql> select from_unixtime(1566314325);

これにより、「2019-08-20 20:48:45」という形式の日時が取得できます。UNIX_TIMESTAMP()とFROM_UNIXTIME()は互いに逆の処理を行う関数なので、セットで覚えておくと便利です。

  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()メソッドなどでタイムゾーン情報を明示的に設定してから、タイムスタンプを取得する必要があります。タイムゾーン情報がないまま変換すると、意図しない値になる可