首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL Unix 時間戳轉日期查詢:FROM_UNIXTIME + DATE_FORMAT 實戰範例

     編輯:MySQL 綜合教學

核心語法

SELECT * FROM `table`
WHERE DATE_FORMAT(FROM_UNIXTIME(`createtime`), '%Y-%m-%d') = '2024-01-02';

函數詳解

FROM_UNIXTIME(unix_timestamp, format)

  • unix_timestamp:欄位名或秒數整數。
  • format:可選,同 DATE_FORMAT 格式化字串。
  • 返回 DATETIME 或格式化字串。

DATE_FORMAT 格式化符號速查

符號含義範例
%Y四位年2024
%m兩位月01
%d兩位日02
%H24 制時14
%i分05
%s秒09
%W星期名Tuesday
%M月份名January

效能優化建議

避免在 WHERE 欄位上使用函數導致索引失效。

改寫為範圍查詢(可用索引):

SELECT * FROM `table`
WHERE `createtime` BETWEEN UNIX_TIMESTAMP('2024-01-02 00:00:00')
                       AND UNIX_TIMESTAMP('2024-01-02 23:59:59');

時區陷阱

  • FROM_UNIXTIME 依伺服器 time_zone 系統變數轉換。
  • 應用層統一儲存 UTC 時間戳,查詢時明確設定 SET time_zone = '+08:00' 或應用層轉換。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved