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