MySQLでMM/DD/YYYY形式の日付をUnixタイムスタンプに変換する方法
MySQLでMM/DD/YYYY形式の日付をUnixタイムスタンプに変換する方法
MySQLでは、STR_TO_DATE()関数とUNIX_TIMESTAMP()関数を組み合わせることで、MM/DD/YYYY形式の日付文字列をUnixタイムスタンプに簡単に変換できます。
基本となる構文は以下の通りです。
SELECT UNIX_TIMESTAMP(STR_TO_DATE(yourColumnName, '%m/%d/%Y')) FROM yourTableName;
サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。
mysql> CREATE TABLE DemoTable
(
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
dateConvertToUnix VARCHAR(100)
);
Query OK, 0 rows affected (0.58 sec)
テストデータの挿入
INSERT文を使って、日付形式の文字列データを登録します。
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('01/10/2001');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('03/31/2010');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('12/31/2016');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('04/27/2019');
Query OK, 1 row affected (0.10 sec)
登録データの確認
SELECT文ですべてのレコードを表示してみます。
mysql> SELECT * FROM DemoTable; +----+-------------------+ | Id | dateConvertToUnix | +----+-------------------+ | 1 | 01/10/2001 | | 2 | 03/31/2010 | | 3 | 12/31/2016 | | 4 | 04/27/2019 | +----+-------------------+ 4 rows in set (0.00 sec)
Unixタイムスタンプへの変換クエリ
次のクエリを実行すると、MM/DD/YYYY形式の日付がUnixタイムスタンプに変換されます。
mysql> SELECT UNIX_TIMESTAMP(STR_TO_DATE(dateConvertToUnix, '%m/%d/%Y')) FROM DemoTable;
実行結果は以下のようになります。
+-----------------------------------------------------------+ | UNIX_TIMESTAMP(str_to_date(dateConvertToUnix,'%m/%d/%Y')) | +-----------------------------------------------------------+ | 979065000 | | 1269973800 | | 1483122600 | | 1556303400 | +-----------------------------------------------------------+ 4 rows in set (0.00 sec)
使用している関数の解説
STR_TO_DATE(dateConvertToUnix, '%m/%d/%Y')は、文字列を日付型(DATE)に変換する関数です。フォーマット指定子の意味は以下の通りです。
- %m:月(2桁の数値)
- %d:日(2桁の数値)
- %Y:年(4桁の数値)
続いて、UNIX_TIMESTAMP()関数がその日付値をUnixタイムスタンプ(1970年1月1日00:00:00 UTCからの経過秒数)に変換します。この2つの関数を組み合わせれば、保存形式が異なる日付文字列でも、フォーマット指定子を変更するだけで柔軟にUnixタイムスタンプへ変換できます。
-
PHP・MySQLで日付形式をdd/mm/yyyyに変更する方法
PHPやMySQLでは、日付の表示形式を自由に変更できます。本記事では、日付を「dd/mm/yyyy(日/月/年)」形式に変換する方法を、PHPとMySQLそれぞれのケースについて解説します。PHPで日付形式を変更する方法PHPでは、date()関数を使って日付形式を簡単に変更できます。基本構文は以下の通りです。date(d/m/Y, 日時の変数);また、文字列を日付として扱う場合は、strtotime()関数を使用します。この関数は、日付を表す文字列をUnixタイムスタンプに変換してくれるため、date()関数と組み合わせて使うのが一般的です。以下は、日時を「dd/mm/yyyy」形式に整形
-
Pythonで日付(datetime)をUnixタイムスタンプに変換する方法
Pythonでは、標準ライブラリのdatetimeモジュールを使って、日時オブジェクトをUnixタイムスタンプ(UTCタイムスタンプ)に変換できます。すでにUTCのdatetimeオブジェクトを持っている場合は、timestamp()メソッドを呼び出すだけで、エポック(1970年1月1日 0時0分0秒 UTC)からの経過秒数を取得できます。 一方、datetimeオブジェクトがローカルタイムゾーンの状態になっている場合は、まずreplace()メソッドなどでタイムゾーン情報を明示的に設定してから、タイムスタンプを取得する必要があります。タイムゾーン情報がないまま変換すると、意図しない値になる可