MySQL时间格式转换
时间: 2025-05-31 20:44:51 浏览: 14
### MySQL 时间格式转换方法
在 MySQL 中,可以利用内置的时间处理函数实现不同类型之间的相互转换。其中最常用的就是 `DATE_FORMAT()` 函数,它用于将日期/时间值按指定的格式返回字符串。
#### 1. **基本语法**
`DATE_FORMAT()` 的通用格式如下:
```sql
DATE_FORMAT(date, format)
```
这里 `date` 是要被格式化的日期或时间表达式,而 `format` 则是一个模式串,用来定义输出的具体样式[^1]。
#### 2. **常见格式化选项**
以下是几种常用的 `%` 符号及其对应的含义:
| 格式字符 | 描述 | 示例 |
|----------|--------------------------|------------------|
| `%Y` | 年份,四位数 | 2023 |
| `%y` | 年份,两位数 | 23 |
| `%m` | 数字月份 | 08 |
| `%c` | 数字月份(无前导零) | 8 |
| `%M` | 文本月份名 | August |
| `%W` | 星期几全称 | Monday |
| `%a` | 缩写的星期名称 | Mon |
| `%D` | 英文序数后缀的天 | 1st, 2nd |
| `%e` | 天(无前导零) | 5 |
| `%d` | 带前导零的天 | 05 |
| `%H` | 小时 (24小时制) | 17 |
| `%h` | 小时 (12小时制) | 05 |
| `%i` | 分钟 | 30 |
| `%s` | 秒 | 45 |
#### 3. **实际应用案例**
##### (1)**获取当前时间并格式化**
假设想得到类似于 `"YYYY-MM-DD HH:mm:ss"` 这样的标准格式,则可执行下面这条命令:
```sql
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
```
这将会依据服务器所在时区给出即时时刻的结果[^2]。
##### (2)**提取特定部分**
有时只需要知道某一天属于哪一年或者那一周的第一天是什么时候等等简单信息就够了。比如截取出给定日期里的年度编号可以用这种方式来做:
```sql
SELECT DATE_FORMAT('2000-05-07', '%Y'); -- 返回 "2000"
```
同样也可以只保留月日而不关心具体的年份:
```sql
SELECT DATE_FORMAT('2000-05-07', '%m%d'); -- 结果为 "0507"
```
##### (3)**复杂组合示例**
更进一步讲,还可以把多个元素拼接起来形成更加丰富的描述性文字。例如显示完整的日期加上当天英文缩写形式的名字以及具体几点几分这样的完整表述:
```sql
SELECT DATE_FORMAT('2000-05-07 05:06:07', '%Y-%m-%d %H:%i:%s %a');
-- 输出形如:"2000-05-07 05:06:07 Sun"
```
另外需要注意的是,如果输入的数据本身不符合预期结构的话可能会导致错误或者是空白输出。所以务必确认所提供的参数确实满足相应的要求后再调用此类功能[^3]。
---
###
阅读全文
相关推荐

















