MySQL时间相关
时间占位符
- 示例的格式化时间戳为
2025-05-02 21:13:14.999
| 符号 | 含义 | 示例 |
|---|---|---|
| %a | 缩写星期名字 | Fri(Friday) |
| %b | 缩写月名 | May |
| %c | 月,数值 | 5 |
| %D | 时间在月内天数 ,英文格式 | 2nd |
| %d | 时间在月内天数 ,数字格式,不足两位前置补0 | 02 |
| %e | 时间在月内天数 ,纯数字 | 2 |
| %f | 微秒 | 999000 |
| %H | 小时,24小时,不足两位前置补0 | 21 |
| %h | 小时,12小时,不足两位前置补0 | 09 |
| %I | 小时,12小时,不足两位前置补0 | 09 |
| %i | 分钟,不足两位前置补0 | 13 |
| %j | 年中的天,不足三位前置补0 | 122 |
| %k | 小时,24小时,纯数字 | 21 |
| %l | 小时,12小时,纯数字 | 9 |
| %M | 英文月名全称 | May |
| %m | 月,不足两位前置补0 | 05 |
| %p | AM (上午)或 PM(下午) | PM |
| %r | 时间12小时 ( %h:%i:%s %p) | 09:13:14 PM |
| %S | 秒,不足两位前置补0 | 14 |
| %s | 秒,不足两位前置补0 | 14 |
| %T | 时间,24小时(%H:%i:%s) | 21:13:14 |
| %U | 周 (00-53) 星期日是一周的第一天,如果1号不是周日,从第一个周日之前都是00,第一个周日是01 | 17 |
| %u | 周 (01-53) 星期一是一周的第一天 ,如果1号不是周一,1号在周一到周四从01开始计算,周五到周日从00开始计算 | 18 |
| %V | 周 (00-53) 星期日是一周的第一天,如果1号不是周日,从第一个周日之前计算的是去年的周数,比如2025-01-01是52,今年第一个周日是01 | 17 |
| %v | 周 (01-53) 星期一是一周的第一天 ,如果1号不是周一,也从1开始,从第一个周一之前的一个周内都是01,第一个周一是02,比如 2024-12-31 值是 01 | 18 |
| %W | 周几,英文 | Friday |
| %w | 周几,数字,0-6 (周日到周六) | 5 |
| %X | 年, 星期日是一周的第一天,如果1号不是周日,从第一个周日之前计算的是去年的年数,比如2025-01-01是2024, | 2025 |
| %x | 年, 星期一是一周的第一天 ,2025-12-31是2026 | 2025 |
| %Y | 年,四位 | 2025 |
| %y | 年,两位 | 25 |
时间单位特殊字符
- 就是英文
| 符号 | 含义 |
|---|---|
| YEAR | 年 |
| MONTH | 月 |
| DAY | 日 |
| HOUR | 时 |
| MINUTE | 分 |
| SECOND | 秒 |
常用格式示例
| 符号 | 含义 | 示例 |
|---|---|---|
%Y-%m-%d %H:%i:%s | 24小时制 年-月-日 时:分:秒 | 2025-03-11 15:04:28 |
%Y-%m-%d %h:%i:%s %p | 12小时制 年-月-日 时:分:秒 时段 | 2025-03-11 03:06:08 PM |
函数
NOW()
- 获取当前时间戳
- 默认输出格式为
%Y-%m-%d %H:%i:%s
SYSDATE()
- 获取当前时间戳
- 默认输出格式为
%Y-%m-%d %H:%i:%s
NOW与SYSDATE的区别
- NOW()在同一条执行中获取第一次时就确定了值,比如
SELECT NOW(), sleep(3),NOW();,这两个值是一样的 - SYSDATE()是每次动态获取的值,比如
SELECT SYSDATE(), sleep(3),SYSDATE();,这两个值是差三秒的
DATE_FORMAT(time,placeholder)
- 格式化时间输出
DATE_SUB(时间戳, INTERVAL 值 单位)
- 对指定时间做减法操作
- 默认输出格式为
%Y-%m-%d %H:%i:%s
DATE_ADD(时间戳, INTERVAL 值 单位)
- 对指定时间做加法操作
- 默认输出格式为
%Y-%m-%d %H:%i:%s
CURRENT_DATE()
- 获取当前日期
- 默认输出格式为
%Y-%m-%d
CURRENT_TIME()
- 获取当前时间
- 默认输出格式为
%H:%i:%s
EXTRACT( 时间单位 from 时间戳 )
- 提取指定时间的指定单位的值
其实直接使用时间单位也是提取的函数,比如SELECT DAY(NOW());,类似的还有DATE,TIME,MONTH…
LAST_DAY(时间戳)
- 获取最后一天
- 默认输出格式为
%Y-%m-%d

被折叠的 条评论
为什么被折叠?



