首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 時間戳轉可讀時間兩大法:FROM_UNIXTIME 函數與 Excel 公式

     編輯:MySQL 資料庫相關知識

方法一:MySQL FROM_UNIXTIME 函數

SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%s');
-- 結果:2009-02-14 07:31:30

常用格式化符號

符號含義
%Y四位年
%m兩位月
%d兩位日
%H24小時
%i分鐘
%s秒
%T%H:%i:%s 縮寫
%F%Y-%m-%d 縮寫

資料庫欄位轉換

-- 欄位 ts 為 INT(11) 儲存 Unix 時間戳
SELECT id, FROM_UNIXTIME(ts, '%Y-%m-%d %H:%i:%s') AS create_time
FROM logs;

方法二:Excel 公式轉換

假設 A1 儲存時間戳 1234567890:

=(A1 + 8*3600) / 86400 + DATE(1970,1,1)
-- 或
=(A1 / 86400) + "1970/1/1" + TIME(8,0,0)

原理:Excel 日期基準為 1900/1/1(序數 1),Unix 基準為 1970/1/1。需加 8 小時修正時區(UTC+8),再除以 86400 秒換算天數。

時區注意事項

  • FROM_UNIXTIME 依伺服器 time_zone 系統變數轉換(預設 SYSTEM)。
  • 若儲存為 UTC,查詢時可用 CONVERT_TZ(FROM_UNIXTIME(ts), 'UTC', '+08:00')。
  • 應用層建議統一儲存 UTC,顯示時再轉換使用者時區。

反向轉換

-- 日期轉時間戳
SELECT UNIX_TIMESTAMP('2024-05-20 14:30:00');
-- 1716186600

-- 當前時間戳
SELECT UNIX_TIMESTAMP();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved