MySQLでUNIXタイムスタンプを人間が読める日付に変換する方法

2024-04-02

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


集計処理をパワーアップ - MySQLで同じテーブルを2回結合して複雑な分析を行う

自己参照関係:テーブル内に親子関係が存在する場合、親レコードと子レコードを関連付けるために、同じテーブルを2回結合する必要があります。階層データの取得:ツリー構造のような階層データを取得する場合、同じテーブルを複数回結合することで、各レベルのデータを取得できます。...


コメントツールを使ってMySQLのコメントを効率的に管理する

MySQL でコメントを追加するには、以下の2つの方法があります。クエリ内にコメントを追加するテーブルやカラムにコメントを追加する方法-- を使って、コメントしたい内容を記述します。/ ... / を使って、複数行にわたってコメントを記述することができます。...


データベース破損によるエラー「Table doesn't exist in engine」の修復方法

MariaDBでテーブルが存在しないというエラーが発生する場合、いくつかの原因が考えられます。このエラーは、データベースの破損が原因である可能性もあります。原因このエラーの考えられる原因は以下のとおりです。テーブル名が間違っているテーブルが実際に存在しない...


SQL SQL SQL SQL Amazon で見る



MySQLバージョ別解説!タイムスタンプをDATETIMEに変換

FROM_UNIXTIME()関数は、UNIX時刻(秒単位の時間)を指定された形式の日付時刻に変換します。この関数は、タイムスタンプがUNIX時刻で格納されている場合に便利です。例:このクエリは、usersテーブルのcreated_at列にあるUNIX時刻をcreation_dateという名前のDATETIME列に変換して返します。


【保存版】MySQLで日付をバッチリに変換!文字列からUNIXタイムスタンプまで

ここで、date_stringは、変換対象の日付文字列です。文字列形式は、YYYY-MM-DD hh:mm:ss または YYYYMMDDhhmmss のいずれかである必要があります。このクエリは、2024年6月13日 21:21:00 のUnixタイムスタンプを返します。結果は次のようになります。