MySQLでUNIXタイムスタンプを人間が読める日付に変換する方法
MySQLでUNIXタイムスタンプを人間が読める日付に変換する方法
Unixタイムスタンプは、1970年1月1日 00:00:00 UTCからの経過秒数を表す整数です。人間にとっては分かりにくい形式なので、MySQLを使用して人間が読める日付に変換する必要があります。
方法
MySQLには、FROM_UNIXTIME()
関数を使用してUNIXタイムスタンプを人間が読める日付に変換する機能があります。この関数は、以下の書式で呼び出します。
FROM_UNIXTIME(unix_timestamp [, format])
unix_timestamp
: 変換したいUNIXタイムスタンプformat
: 出力する日付形式 (オプション)
例
-- 現在のUNIXタイムスタンプを取得
SELECT UNIX_TIMESTAMP();
-- 現在のUNIXタイムスタンプをデフォルトの日付形式に変換
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
-- 現在のUNIXタイムスタンプを指定された日付形式に変換
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d');
出力例
-- 現在のUNIXタイムスタンプ
1648401200
-- 現在のUNIXタイムスタンプをデフォルトの日付形式に変換
2024-03-26 12:00:00
-- 現在のUNIXタイムスタンプを指定された日付形式に変換
2024-03-26
補足
format
パラメータは省略可能で、指定しない場合はデフォルトの日付形式 (%Y-%m-%d %H:%i:%s
) が使用されます。
- MySQLだけでなく、他のプログラミング言語でもUNIXタイムスタンプを人間が読める日付に変換することができます。
関連キーワード
- MySQL
- UNIXタイムスタンプ
- FROM_UNIXTIME()関数
- 日付形式
-- 現在の日時を取得
SELECT CURRENT_TIMESTAMP();
-- 現在の日時をUNIXタイムスタンプに変換
SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP());
-- 現在の日時を指定された日付形式に変換
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_TIMESTAMP()), '%Y-%m-%d %H:%i:%s');
-- 1週間前のUNIXタイムスタンプを取得
SELECT UNIX_TIMESTAMP() - 7 * 24 * 60 * 60;
-- 1週間前のUNIXタイムスタンプを人間が読める日付に変換
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP() - 7 * 24 * 60 * 60, '%Y-%m-%d');
-- 現在の日時
2024-03-26 12:00:00
-- 現在の日時をUNIXタイムスタンプに変換
1648401200
-- 現在の日時を指定された日付形式に変換
2024-03-26 12:00:00
-- 1週間前のUNIXタイムスタンプ
1647716800
-- 1週間前のUNIXタイムスタンプを人間が読める日付に変換
2024-03-19
説明
CURRENT_TIMESTAMP()
関数を使用して現在の日時を取得します。UNIX_TIMESTAMP()
関数を使用して現在の日時をUNIXタイムスタンプに変換します。FROM_UNIXTIME()
関数を使用してUNIXタイムスタンプを指定された日付形式に変換します。-
演算子を使用して現在の日時から1週間前のUNIXタイムスタンプを取得します。
- 上記のサンプルコードは、MySQL 8.0 で動作確認しています。
- 他のバージョンのMySQLを使用する場合は、
FROM_UNIXTIME()
関数の書式が異なる場合があります。
UNIXタイムスタンプを人間が読める日付に変換する他の方法
DATE_FORMAT()
関数は、日付時刻値を指定された書式に変換するために使用できます。
SELECT DATE_FORMAT(UNIX_TIMESTAMP(1648401200), '%Y-%m-%d');
2024-03-26
SELECT STRFTIME('%Y-%m-%d', UNIX_TIMESTAMP(1648401200));
2024-03-26
プログラミング言語を使用する
- Python:
import datetime
timestamp = 1648401200
date_time = datetime.datetime.fromtimestamp(timestamp)
print(date_time.strftime('%Y-%m-%d'))
- JavaScript:
var timestamp = 1648401200;
var date = new Date(timestamp * 1000);
console.log(date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate());
- どの方法を使用する場合でも、使用するデータベースやプログラミング言語のドキュメントを確認することをお勧めします。
mysql unix-timestamp