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

MySQL UNIX_TIMESTAMP() 日期轉換函數詳解:時間戳與日期字串雙向互轉

     編輯:MySQL 綜合教學

前言

UNIX_TIMESTAMP() 是 MySQL 處理日期時間轉 Unix 時間戳的核心函數。本文詳細說明無參數、帶參數兩種呼叫模式、支援格式、TIMESTAMP 欄位特殊行為與溢出處理。

語法與模式

1. 無參數:取得當前時間戳

SELECT UNIX_TIMESTAMP();

回傳 1970-01-01 00:00:00 UTC 至今的秒數(無符號整數)。

範例:882226357

2. 帶參數:日期轉時間戳

SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');

回傳:875996580

支援的日期格式

格式類型範例
DATE 字串'1997-10-04'
DATETIME 字串'1997-10-04 22:23:00'
TIMESTAMP 值19971004222300
YYMMDD 數字971004
YYYYMMDD 數字19971004

特殊行為:TIMESTAMP 欄位直接回傳

當參數為 TIMESTAMP 類型欄位時,函數直接回傳內部儲存的時間戳值,不進行「字串→時間戳」轉換,效能最佳。

溢出與邊界處理

  • 支援範圍:1970-01-01 00:00:00 ~ 2037-12-31 23:59:59(32 位元有號整數上限)。
  • 超出範圍傳入 → 回傳 0。
  • 僅做基本範圍檢查(年 1970-2037、月 01-12、日 01-31),不檢查日期合法性(如 2 月 30 日會回傳 0 而非報錯)。

反向轉換:FROM_UNIXTIME()

SELECT FROM_UNIXTIME(875996580);  -- '1997-10-04 22:23:00'
SELECT FROM_UNIXTIME(875996580, '%Y-%m-%d %H:%i:%s');  -- 格式化輸出

相關延伸閱讀

  • MySQL 隨機查詢優化實例
  • MySQL 查詢快取變數
  • MySQL key_buffer_size 參數設定
  • MySQL 伺服器最大連接數合理設定
  • MySQL 多表查詢實現
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved