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

MySQL 獲取當前日期時間與格式化輸出完全手冊

     編輯:MySQL 綜合教學

MySQL 當前日期時間獲取與格式化實戰

本文聚焦 MySQL 中獲取系統當前時間的函數用法,以及如何靈活格式化輸出滿足不同業務場景需求。

核心函數速覽

  • NOW():返回當前日期時間 YYYY-MM-DD HH:MM:SS
  • CURDATE():僅返回日期 YYYY-MM-DD
  • CURTIME():僅返回時間 HH:MM:SS
  • DATE_FORMAT(date, format):自定義格式化輸出

常用場景範例

-- 1. 獲取完整當前時間
SELECT NOW(); 
-- 結果:2024-01-15 14:30:45

-- 2. 格式化為「年-月-日」
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); 
-- 結果:2024-01-15

-- 3. 格式化為「時:分:秒」
SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); 
-- 結果:14:30:45

-- 4. 中文友好格式
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H時%i分'); 
-- 結果:2024年01月15日 14時30分

-- 5. 表字段格式化查詢
SELECT id, username, DATE_FORMAT(create_time, '%Y-%m-%d') AS reg_date FROM users;

建表時的默認值陷阱

錯誤示範:CREATE TABLE t (dt DATETIME DEFAULT NOW()); → 報錯:MySQL 不允許在列定義中使用 NOW() 作為默認值(除 TIMESTAMP 類型外)。

正確做法:

  • 使用 TIMESTAMP DEFAULT CURRENT_TIMESTAMP(自動記錄插入/更新時間)
  • 或在應用層/存儲過程中顯式傳入 NOW()
  • MySQL 8.0.13+ 支持 DATETIME DEFAULT CURRENT_TIMESTAMP

格式化參數速查卡

代碼含義範例
%Y4位年份2024
%m2位月份01
%d2位日期15
%H24制小時14
%i分鐘30
%s秒45
%W星期全稱Monday
%%字面%%

進階技巧:動態構建格式化字串

-- 根據需求動態拼接格式
SET @fmt = CONCAT('%Y-%m-%d', IF(@show_time=1, ' %H:%i:%s', ''));
SELECT DATE_FORMAT(NOW(), @fmt);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved