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

MySQL DATE_FORMAT 函數內建格式化符號完整參考表

     編輯:MySQL 綜合教學

DATE_FORMAT(date, format) 語法

根據 format 字串將日期/時間值格式化為字串。date 可為 DATE、DATETIME、TIMESTAMP、字串或數字。

完整格式化符號表

符號說明範例輸出
%a星期縮寫 (Sun..Sat)Sun
%b月份縮寫 (Jan..Dec)Jan
%c月份數值 (1..12)1
%D帶英文後綴的日期 (1st, 2nd, 3rd...)1st
%d日期兩位數 (01..31)01
%e日期數值 (1..31)1
%f微秒 (000000..999999)123456
%H小時 24制兩位數 (00..23)14
%h / %I小時 12制兩位數 (01..12)02
%i分鐘兩位數 (00..59)30
%j一年中的天數 (001..366)001
%k小時 24制 (0..23)14
%l小時 12制 (1..12)2
%M月份全名 (January..December)January
%m月份兩位數 (01..12)01
%pAM/PMPM
%r時間 12制 (hh:mm:ss AM/PM)02:30:45 PM
%S / %s秒兩位數 (00..59)45
%T時間 24制 (hh:mm:ss)14:30:45
%U週數 (00..53),週日為第一天01
%u週數 (00..53),週一為第一天01
%V週數 (01..53),週日為第一天,配合 %X01
%v週數 (01..53),週一為第一天,配合 %x01
%W星期全名 (Sunday..Saturday)Sunday
%w星期數值 (0=Sunday..6=Saturday)0
%X年份四位數,配合 %V(週日為第一天)2024
%x年份四位數,配合 %v(週一為第一天)2024
%Y年份四位數2024
%y年份兩位數24
%%字面 % 字元%

常用組合範例

需求format 字串輸出範例
標準日期%Y-%m-%d2024-01-15
標準日期時間%Y-%m-%d %H:%i:%s2024-01-15 14:30:45
中文日期%Y年%m月%d日2024年01月15日
年月%Y-%m2024-01
月日%m-%d01-15
時間 24制%H:%i14:30
時間 12制%h:%i %p02:30 PM
ISO 週日期%x-%v2024-03
日誌時間戳%Y%m%d%H%i%s20240115143045

進階用法

搭配 STR_TO_DATE 反向解析

SELECT STR_TO_DATE('2024-01-15 14:30:45', '%Y-%m-%d %H:%i:%s');
-- 返回 DATETIME 值

在 WHERE 條件中使用(注意索引失效)

-- 低效:全表掃描
SELECT * FROM orders WHERE DATE_FORMAT(created_at, '%Y-%m') = '2024-01';

-- 高效:範圍查詢走索引
SELECT * FROM orders 
WHERE created_at >= '2024-01-01' AND created_at < '2024-02-01';

時區考量

  • DATE_FORMAT 使用會話時區 (time_zone 系統變數)
  • 儲存建議用 TIMESTAMP (自動 UTC 轉換) 或應用層統一 UTC 存 DATETIME

總結

DATE_FORMAT 符號豐富,掌握 %Y-%m-%d %H:%i:%s 等常用組合即可覆蓋 95% 場景。切記:WHERE 條件勿用 DATE_FORMAT 包裹欄位,改用範圍查詢利用索引。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved