Mysql 格式化日期/时间

本文详细介绍了 MySQL 中的 DATE_FORMAT 函数,展示了如何使用不同的格式化字符串来展示日期和时间。DATE_FORMAT 函数允许用户根据特定的需求定制日期和时间的显示格式。
DATE_FORMAT(date,format) 
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December) 
%W 星期名字(Sunday……Saturday) 
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 
%Y 年, 数字, 4 位 
%y 年, 数字, 2 位 
%a 缩写的星期名字(Sun……Sat) 
%d 月份中的天数, 数字(00……31) 
%e 月份中的天数, 数字(0……31) 
%m 月, 数字(01……12) 
%c 月, 数字(1……12) 
%b 缩写的月份名字(Jan……Dec) 
%j 一年中的天数(001……366) 
%H 小时(00……23) 
%k 小时(0……23) 
%h 小时(01……12) 
%I 小时(01……12) 
%l 小时(1……12) 
%i 分钟, 数字(00……59) 
%r 时间,12 小时(hh:mm:ss [AP]M) 
%T 时间,24 小时(hh:mm:ss) 
%S 秒(00……59) 
%s 秒(00……59) 
%p AM或PM 
%w 一个星期中的天数(0=Sunday ……6=Saturday ) 
%U 星期(0……52), 这里星期天是星期的第一天 
%u 星期(0……52), 这里星期一是星期的第一天 
%% 一个文字“%”。
%a - 星期几的简写 

%A - 星期几的全写 

%b - 月份的简写 

%B - 月份的全写 

%c - 日期时间06/12/05 11:15:10 

%C - 世纪时间 

%d - 一个月的第几号(从 01 到 31) 

%D - 同 %m/%d/%y 

%e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31) 

%g - 世纪 

%G - 世纪 [0000,9999] 

%h - 同%b 

%H - 24小时形式的小时(从00到23) 

%I - 12小时形式的小时(从01到 12) 

%j - 一年中的第几天(从 001 到 366) 

%k - 24小时形式的小时,单数字前面加空格. (从 0 到 23) 

%l - 12小时形式的小时,单数字前面加空格.(range 1 to 12) 

%m - 月份 (range 01 to 12) 

%M - 分 

%n - 换行符 

%p - 显示早上还是下午`am' 或 `pm' 

%r - a.m. 或 p.m.形式的时间 

%R - 24小时形式的时间 

%S - 秒 

%t - tab符号 

%T - 同%H:%M:%S 

%u - 用 [1,7],表示星期几 

%U - 计算是该年的第几个星期,从该年的第一个星期天开始计算 

%V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须至少有4天在这一年, 星期天作为这个星期的第一天 

%w - 用数字的形式表示是星期的第几天, 星期天 为 0 

%W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开始计算 

%x - 显示日期:月/日/年 

%X - 显示时间:小时:分钟:秒 

%y - 不包括世纪的年份 

%Y - 包括世纪的年份 

%Z - 时区 

%% - 输出%
MySQL 提供了多种方式来格式化日期时间,其中最常用的是 `DATE_FORMAT()` 和 `TIME_FORMAT()` 函数。 `DATE_FORMAT()` 函数可以用于格式化日期时间,支持完整的日期时间格式,如 `YYYY-MM-DD HH:MM:SS` 或 `YY-MM-DD` 等。该函数接受两个参数:日期时间字段和格式化字符串。例如: ```sql SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS formatted_date FROM orders; ``` 该语句将 `create_time` 字段格式化为 `YYYY-MM-DD` 格式输出。其中 `%Y` 表示四位数的年份,`%m` 表示两位数的月份,`%d` 表示两位数的日期[^1]。 如果只需要格式化时间部分,可以使用 `TIME_FORMAT()` 函数,它专门用于格式化时间值,例如: ```sql SELECT TIME_FORMAT(create_time, '%r') AS formatted_time FROM orders; ``` 该语句将时间部分格式化为 `HH:MM:SS AM/PM` 格式输出,例如 `11:07:45 AM`。也可以使用其他格式化字符串,如 `%l:%i %p`,输出格式为 `11:07 AM`[^1]。 在实际查询中,格式化日期常用于筛选特定时间范围内的数据。例如,可以结合 `DATE_FORMAT()` 与 `WHERE` 子句进行查询: ```sql SELECT * FROM orders WHERE DATE_FORMAT(create_time, '%Y-%m-%d') >= '2024-01-01' AND DATE_FORMAT(create_time, '%Y-%m-%d') <= '2024-12-31'; ``` 该查询筛选出 `create_time` 在 `2024-01-01` 到 `2024-12-31` 之间的记录。此外,`DATE_FORMAT()` 也可以与其他函数结合使用,如 `YEARWEEK()`,用于查询特定周范围内的数据: ```sql SELECT fullName, addedTime FROM t_user WHERE YEARWEEK(DATE_FORMAT(addedTime, "%Y-%m-%d")) = YEARWEEK(NOW()) - 1; ``` 该语句查询了上一周内添加的用户记录[^2]。 ### 常用格式化参数说明 | 格式化符号 | 含义 | 示例 | |------------|------------------------|--------------| | %Y | 四位数的年份 | 2024 | | %y | 两位数的年份 | 24 | | %m | 两位数的月份 | 04 | | %c | 数字形式的月份 | 4 | | %d | 两位数的日期 | 07 | | %e | 数字形式的日期 | 7 | | %H | 24小时制的小时 | 14 | | %h | 12小时制的小时 | 02 | | %i | 分钟 | 07 | | %s | 秒 | 45 | | %p | AM/PM | PM | | %r | 时间(12小时制) | 02:07:45 PM | | %T | 时间(24小时制) | 14:07:45 | | %M | 完整的月份名 | April | | %b | 缩写的月份名 | Apr | | %D | 带有后缀的日期 | 7th | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值