当前位置:网站首页>MySQL的DATE_FORMAT()函数将Date转为字符串
MySQL的DATE_FORMAT()函数将Date转为字符串
2022-07-30 20:14:00 【iijik55】
一、前言
最近要做一些报表,其中有一个创建报表的时间,需要以固定的格式输出;那么在SQL层面如何处理呢?
二、DATE_FORMAT()函数
要将日期值格式化为特定格式,可以使用DATE_FORMAT函数。 DATE_FORMAT函数的语法如下:
DATE_FORMAT(date,format);
DATE_FORMAT()函数中两个参数的意思:
- date:要格式化的有效日期值;
- format:由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)。有关预定义说明符的列表,请参见下表。
表格 – 可用于构建日期格式字符串的说明符及其含义:
限定符
含义
%a
三个字符缩写的工作日名称,例如:Mon, Tue, Wed,等
%b
三个字符缩写的月份名称,例如:Jan,Feb,_Mar_等
%c
以数字表示的月份值,例如:1, 2, 3…12
%D
英文后缀如:0th, 1st, _2nd_等的一个月之中的第几天
%d
如果是1
个数字(小于10
),那么一个月之中的第几天表示为加前导加0
, 如:00, 01,02, …31
%e
没有前导零的月份的日子,例如:1,2,… 31
%f
微秒,范围在000000..999999
%H
24小时格式的小时,前导加0
,例如:00,01…23
%h
小时,12小时格式,带前导零,例如:01,02 … 12
%I
与%h
相同
%i
分数为零,例如:00,01,… 59
%j
一年中的的第几天,前导为0
,例如,001,002,… 366
%k
24小时格式的小时,无前导零,例如:0,1,2 … 23
%l
12小时格式的小时,无前导零,例如:0,1,2 … 12
%M
月份全名称,例如:January, February,…December
%m
具有前导零的月份名称,例如:00,01,02,… 12
%p
AM
或PM
,取决于其他时间说明符
%r
表示时间,12
小时格式hh:mm:ss AM
或PM
%S
表示秒,前导零,如:00,01,… 59
%s
与%S
相同
%T
表示时间,24小时格式hh:mm:ss
%U
周的第一天是星期日,例如:00,01,02 … 53时,前导零的周数
%u
周的第一天是星期一,例如:00,01,02 … 53时,前导零的周数
%V
与%U
相同,它与%X
一起使用
%v
与%u
相同,它与%x
一起使用
%W
工作日的全称,例如:Sunday, Monday,…, Saturday
%w
工作日,以数字来表示(0 = 星期日,1 = 星期一等)
%X
周的四位数表示年份,第一天是星期日; 经常与%V
一起使用
%x
周的四位数表示年份,第一天是星期日; 经常与%v
一起使用
%Y
表示年份,四位数,例如2000,2001,…等。
%y
表示年份,两位数,例如00,01,…等。
%%
将百分比(%
)字符添加到输出
恕我直言,真多;这谁没事会全记下来;我们一般记几个常用的就可;
DATE_FORMAT字符串格式
格式化日期
%Y/%m/%d
2022/04/26
%Y-%m-%d
2022-04-26
%e/%c/%Y
4/8/2022
%d/%m/%Y %H:%i
26/04/2022 17:27
%b %d %Y %h:%i %p
Apr 26 2022 05:28 PM
%Y-%m-%d %T:%f
2022-04-26 17:29:30:000000
%W %D %M %Y %T
Tuesday 26th April 2022 17:31:34
三、示例
user表随便用一个自己的表替换即可,id为主键。now()为MySQL自带的获取当前时间的函数;
1> %Y/%m/%d
如果月份和日的数字小于10,则直接必须用0填充,显示两位数字;
select date_format(now(), '%Y/%m/%d') now_time ,id from user where id = 68;
2> %Y-%m-%d
select date_format(now(), '%Y-%m-%d') now_time ,id from user where id = 68;
3> %e/%c/%Y
如果月份和日的数字小于10,则直接不在用0填充,可以只显示一位;
select date_format(now(), '%e/%c/%Y') now_time ,id from user where id = 68;
4> %d/%m/%Y %H:%i
select date_format(now(), '%d/%m/%Y %H:%i') now_time ,id from user where id = 68;
5> %b %d %Y %h:%i %p
select date_format(now(), '%b %d %Y %h:%i %p') now_time ,id from user where id = 68;
6> %Y-%m-%d %T:%f
select date_format(now(), '%Y-%m-%d %T:%f') now_time ,id from user where id = 68;
7> %W %D %M %Y %T
select date_format(now(), '%W %D %M %Y %T') now_time ,id from user where id = 68;
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- OSS simply upload pictures
- How to copy table structure and table data in MySQL
- excel数字下拉递增怎么设置?
- 推荐系统:实时性【特征实时性:客户端实时特征(秒级,实时)、流处理平台(分钟级,近实时)、分布式批处理平台(小时/天级,非实时)】【模型实时性:在线学习、增量更新、全量更新】
- 如何解决gedit 深色模式下高亮文本不可见?
- Multi-threaded mutex application RAII mechanism
- 都在说软件测试没前途,饱和了?为何每年还会增加40万测试员?
- 明解C语言第六章习题
- Snowflake vs. Redshift的2022战报:两个数据平台谁更适合你?
- ELK日志分析系统
猜你喜欢
随机推荐
PPT如何开启演讲者模式?PPT开启演讲者模式的方法
el-input can only input integers (including positive numbers, negative numbers, 0) or only integers (including positive numbers, negative numbers, 0) and decimals
Linux download and install mysql5.7 version tutorial the most complete and detailed explanation
基于Apache Doris的湖仓分析
Weak Banks to data conversion ability?Matt software help solve bank dilemma
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
推荐系统:评估指标【离线评估指标:RMSE(均方根误差)、AUC、准确率、召回率、F1】【在线评估:A/B测试】【一般要求响应时间<0.5s】
普通的int main(){}没有写return 0;会怎么样?
线性结构:顺序表和链表
360杜跃进:太空安全风险加剧,需打造一体化防御体系
在jOOQ中获取数据的多种不同方式
树形结构:二叉树的递归非递归遍历、BST
推荐系统-模型:FNN模型(FM+MLP=FNN)
Centos7 install mysql8
多线程获取官方汇率
M3SDA: Moment matching for multi-source domain adaptation
推荐系统:开源项目/工具【谷歌:TensorFlow Recommenders】【Facebook:TorchRec】【百度:Graph4Rec】【阿里:DeepRec和EasyRec】
4年测试经验去面试10分钟就被赶出来了,面试官说我还不如应届生?都这么卷吗...
Install Mysql5.7 under Linux, super detailed and complete tutorial, and cloud mysql connection
都在说软件测试没前途,饱和了?为何每年还会增加40万测试员?