MySQL日期格式化记录一下

MySQL中常常会用到对日期的格式化,比如按某时间格式计算间隔,按某时间格式统计信息等等,所以整理了一下日期格式化的参数,可以根据自己的需求进行组合使用。使用例子如下:
(1)SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');
(2)SELECT DATE_FORMAT('2018-10-22 16:08:07','%Y年%m月%d日 %H时%i分%s秒');

格式化参数如下:
%a 缩写星期名(Sun-Sat)
%b 缩写月份名(Jan-Dec)
%c 月份(1-12)
%D 带有英文后缀的月份中的天(1st-31st)
%d 月份中的天(01-31)
%e 月份中的天(1-31)
%f 微秒
%H 小时,24小时制(00-23)
%h 小时,12小时制(01-12)
%I 小时,12小时制(01-12)
%i 分钟(00-59)
%j 一年中的天(001-366)
%k 小时,24小时制(0-23)
%l 小时,12小时制(1-12)
%M 月份全名(January-December)
%m 月份(01-12)
%p 12小时标志(AM 或 PM)
%r 时间,12小时制(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间,24小时制(hh:mm:ss)
%U 一年中的周(00-53) 星期日是一周的第一天
%u 一年中的周(00-53) 星期一是一周的第一天
%V 一年中的周(01-53) 星期日是一周的第一天,与%X使用
%v 一年中的周(01-53) 星期一是一周的第一天,与%x使用
%W 星期全名
%w 一周中的天 (0=星期日, 6=星期六)
%X 年份(yyyy) 星期日是周的第一天,与%V使用
%x 年份(yyyy) 星期一是周的第一天,与%v使用
%Y 年份(yyyy)
%y 年份(yy)

PS:使用%U和%u时注意,其中的周计算规则与通常的周计算有所不同,会使用到00周,比如:
(1)2016年1月1日的周信息,用%U获取为第00周,直到2016年1月3日才是第01周。用%u获取也为第00周,直到2016年1月4日才是第01周。
(2)2019年1月1日的周信息,用%U获取为第00周,直到2019年1月6日才是第01周。而用%u获取为第01周。使用%X%V获取为2018年的第52周。使用%x%v获取为2019年的第01周。
因为:
%U对第一周的判断:星期日为一周的第一天,则必须包含星期日。
%u对第一周的判断:星期一为一周的第一天,则必须包含星期一,或第一周最少包含4天。

你可能感兴趣的:(MySQL日期格式化记录一下)