1. MySQL日期时间格式化函数DATE_FORMAT()深度解析
DATE_FORMAT()函数是MySQL中处理日期时间数据最常用的工具之一。作为一名长期与MySQL打交道的开发者,我发现很多同行对这个函数的使用仅停留在基础层面,实际上它蕴含着许多实用技巧和注意事项。本文将带你全面掌握DATE_FORMAT()的高级用法,包括那些官方文档中没有明确说明的细节。
1.1 函数基本语法与参数说明
DATE_FORMAT()函数的完整语法结构如下:
sql复制DATE_FORMAT(date, format)
其中:
date参数可以是以下几种类型:- DATE类型(仅包含日期部分)
- DATETIME或TIMESTAMP类型(包含日期和时间)
- 符合MySQL日期时间格式的字符串(如'2024-05-20'或'2024-05-20 15:30:00')
重要提示:当使用字符串作为date参数时,MySQL对分隔符的宽容度很高,但空格除外。例如'2024/05/20'、'2024-05-20'甚至'2024@05@20'都能被正确解析,但'2024 05 20'会导致函数返回NULL。
format参数由特定的格式说明符组成,每个说明符以百分号(%)开头。MySQL支持超过30种不同的格式说明符,下面是一些最常用的:
| 格式符 | 说明 | 示例输出 |
|---|---|---|
| %Y | 四位年份 | 2024 |
| %y | 两位年份 | 24 |
| %m | 两位月份(01-12) | 05 |
| %c | 月份(1-12) | 5 |
| %M | 月份全名 | May |
| %b | 月份缩写 | May |
| %d | 两位日期(01-31) | 20 |
| %e | 日期(1-31) | 20 |
| %D | 英文序数日期 | 20th |
| %H | 24小时制小时(00-23) | 15 |
| %h | 12小时制小时(01-12) | 03 |
| %i | 分钟(00-59) | 30 |
| %s | 秒(00-59) |
