【问答】MySQL DATE_FORMAT函数怎么用?
问: 在MySQL中如何使用DATE_FORMAT() 函数?
在我们平常使用MySQL时,有可能会对某些日期数据进行格式化,使它变为我们想要的格式,此时我们就会使用 DATE_FORMAT(date,format) 函数。
注:所谓格式化就是将一个东西的展示形式或者存储成指定的形式,比如一个字符串20201125你想让它以 年-月-日 的形式(格式)展示,那么它格式化之后就是 2020-11-25
DATE_FORMAT() 接收两个参数:
date :参数是合法的日期
format : 规定的日期格式,由格式标识符组成的字符串,也就是你想格式化成什么样,用指定的格式标识符指定你想要的格式,格式标识符见下表
格式标识符 | 描述 |
%a | 星期名的缩写(比如 Monday 缩写为 Mon) |
%b | 月份的缩写(比如January 缩写为 Jan) |
%c | 月份,数字形式(0,1 ... 12) |
%D | 该月的几号,带英文后缀(0th, 1st, 2nd, 3rd, …) |
%d | 该月的几号,数字形式 (00..31) |
%e | 该月的几号,数字形式 (0..31) |
%f | 微秒(000000..999999) |
%H | 小时(00..23) |
%h | 小时(01..12) |
%I | 小时(01..12) |
%i | 分钟,数字形式(00..59) |
%j | 一年中的天数(001..366) |
%k | 小时(0..23) |
%l | 小时(1..12) |
%M | 月份的名字(January..December) |
%m | 月份,数字格式(00..12) |
%p | AM(上午) 或 PM(下午) |
%r | 时间,12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM) |
%S | 秒(00..59) |
%s | 秒(00..59) |
%T | 时间,24小时制(小时hh:分钟mm:秒数ss) |
%U | 周(00..53),周日是每周的第一天,模式0 |
%u | 周(00..53),周一是每周的第一天,模式1 |
%V | 周(01..53),周日是每周的第一天,模式2,和%X一起使用 |
%v | 周(01..53),周一是每周的第一天,模式3,和%x一起使用 |
%W | 星期名(Sunday..Saturday) |
%w | 周内的某天(0=Sunday..6=Saturday) |
%X | 该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用 |
%x | 该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用 |
%Y | 年份,数字形式,四位数 |
%y | 年份,数字形式,两位数 |
%% | % 的文字字符 |
注: 以上表中加粗的为比较常用的格式标识符。
例子:将字符串 '20200105222810' 格式化为
年(四位)-月(00..12)-日(00..31) 时(00..23):分(00..59):秒(00..59) 这样的格式。
由上表可知, %Y-%m-%d %H:%i:%s 这样的格式标识符组合能够满足我们的要求。
再比如,我想让上面的字符串 '20200105222810' 显示 年-月-日 时:分:秒
但是小时是12小时制,后面跟上上午还是下午。经查询上表,我们知道 '%Y-%m-%d %r' 这样的格式标识符组合可以满足我们的需求
趣谈编程
让天下没有
难懂的技术