vlambda博客
学习文章列表

【问答】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 这样的格式标识符组合能够满足我们的要求。


【问答】MySQL DATE_FORMAT函数怎么用?


再比如,我想让上面的字符串 '20200105222810'  显示 年-月-日 时:分:秒

但是小时是12小时制,后面跟上上午还是下午。经查询上表,我们知道 '%Y-%m-%d %r' 这样的格式标识符组合可以满足我们的需求


【问答】MySQL DATE_FORMAT函数怎么用?

好了,其余的说明符大家可以自己试试,我们下期见




趣谈编程

让天下没有

难懂的技术