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

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コマンドを使用して、いくつかのレコードをテーブルに挿入します。

mysql> insert into DemoTable1997 values('2018-10-11');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1997 values('2019-12-21');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1997 values('2017-01-31');
Query OK, 1 row affected (0.11 sec)

レコードの確認

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

mysql> select * from DemoTable1997;

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

+------------+
| DueDate    |
+------------+
| 2018-10-11 |
| 2019-12-21 |
| 2017-01-31 |
+------------+
3 rows in set (0.00 sec)

UNIXタイムスタンプへの変換クエリ

YYYY-MM-DD形式の日付をUNIXタイムスタンプに変換するには、CAST()で日付型に変換した値をUNIX_TIMESTAMP()に渡します。実際のクエリは以下の通りです。

mysql> select unix_timestamp(cast(DueDate as date)) as Result from DemoTable1997;

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

+------------+
| Result     |
+------------+
| 1539196200 |
| 1576866600 |
| 1485801000 |
+------------+
3 rows in set (0.00 sec)

補足ポイント

UNIX_TIMESTAMP()関数は、引数を指定せずに呼び出すと現在日時のタイムスタンプを返し、日付文字列やDATE型の値を渡すとその日時に対応するタイムスタンプを返します。また、変換結果はMySQLサーバーのタイムゾーン設定の影響を受けるため、運用環境によって値が異なる場合がある点に注意してください。

  1. MySQLでMM/YY形式の日付をYYYY-MM-DD形式に変換する方法

    MySQLで「11/15」のようなMM/YY形式の文字列を「2015-11-10」のようなYYYY-MM-DD形式の日付に変換するには、str_to_date()関数を使用します。この関数は、指定したフォーマットに従って文字列を日付値へ変換できる便利な関数です。まずは、サンプル用のテーブルを作成し、日付データを登録していきましょう。テーブルの作成例mysql> create table demo72 -> ( -> due_date varchar(40) -> );Query OK, 0 rows affected (2.96 sec)次に、INSE

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

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