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

MySQL 日期時間與 Unix Timestamp 互轉完整函數參考

     編輯:MySQL 資料庫相關知識

MySQL 儲存時間常用 INT(11) 存 Unix Timestamp,或 DATETIME/TIMESTAMP 型別。本文彙整 FROM_UNIXTIME、UNIX_TIMESTAMP、DATE_FORMAT 等核心函數,含格式化符號完整對照表與常用查詢範例。

核心互轉函數

函數用途範例
FROM_UNIXTIME(ts, format)Timestamp → 格式化字串FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%s')
UNIX_TIMESTAMP(dt)日期時間 → TimestampUNIX_TIMESTAMP('2024-01-01 00:00:00')
DATE_FORMAT(dt, format)日期時間 → 指定格式字串DATE_FORMAT(NOW(), '%Y-%m-%d')

格式化符號完整對照表

符號意義範例
%Y4 位數年份2024
%y2 位數年份24
%m月份 (01-12)01
%c月份 (1-12)1
%d日期 (01-31)01
%e日期 (1-31)1
%H小時 24制 (00-23)13
%h小時 12制 (01-12)01
%i分鐘 (00-59)05
%s秒數 (00-59)09
%W星期名稱Monday
%a星期縮寫Mon
%M月份名稱January
%b月份縮寫Jan
%r12制時間 (hh:mm:ss AM/PM)01:05:09 PM
%T24制時間 (hh:mm:ss)13:05:09
%%字面 % 符號%

常用查詢範例

1. 近 30 天資料

SELECT * FROM tbl_name
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30

2. 日期運算函數

函數說明範例結果
DAYOFWEEK(date)星期索引 (1=Sun, 7=Sat)3
WEEKDAY(date)星期索引 (0=Mon, 6=Sun)1
DAYOFMONTH(date)月份第幾天 (1-31)3
DAYOFYEAR(date)年度第幾天 (1-366)34
MONTH(date)月份 (1-12)2
DAYNAME(date)星期名稱Thursday
MONTHNAME(date)月份名稱February
QUARTER(date)季度 (1-4)2
WEEK(date)年度第幾週5

3. Excel 公式換算(參考)

=(UnixTimestamp + 8*3600) / 86400 + 70*365 + 19
-- 8*3600 為 UTC+8 時區修正

實務提醒

  • MySQL TIMESTAMP 型別範圍:1970-2038,DATETIME:1000-9999
  • FROM_UNIXTIME 回傳值受 time_zone 系統變數影響
  • 儲存為 INT 時,查詢前先轉換再比較,避免隱含轉換導致索引失效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved