MySQL时间与字符串之间相互转换
在MySQL数据库中,我们常常需要将时间类型的数据与字符串类型的数据进行相互转换。本文将介绍几种在MySQL中时间与字符串之间相互转换的方法。
时间格式与字符串格式
在MySQL中,有多种用于表示时间的类型。其中,最常见的有日期(DATE)、日期时间(DATETIME)、时间(TIME)、时间戳(TIMESTAMP)等。在进行时间和字符串的转换前,我们需要先了解一下它们的格式。
DATE
:YYYY-MM-DDDATETIME
:YYYY-MM-DD HH:MM:SSTIME
:HH:MM:SSTIMESTAMP
:YYYY-MM-DD HH:MM:SS(与DATETIME格式相同)
在MySQL中,时间格式的字符串必须按照以上格式来表示,否则会出现格式错误的问题。
时间转字符串
DATE_FORMAT()
函数
使用DATE_FORMAT()
函数可以将时间类型的数据格式化为字符串。该函数的语法如下:
DATE_FORMAT(date, format)
其中,date
为待转换的时间类型的数据,format
为字符串格式。format
的取值可以是以下的选项:
%Y
:4位数字表示的年份%y
:2位数字表示的年份%m
:2位数字表示的月份%c
:数字表示的月份%d
:2位数字表示的日%e
:数字表示的日%H
:2位数字表示的小时(24小时制)%h
:2位数字表示的小时(12小时制)%i
:2位数字表示的分钟%s
:2位数字表示的秒%p
:AM或PM%W
:星期的完整英文名称%a
:星期的缩写英文名称%dth
:日的英文序数词
举个例子:
SELECT DATE_FORMAT('2022-11-11', '%W %M %e, %Y');
该查询语句的执行结果为:Friday November 11th, 2022
CONVERT()
函数
使用CONVERT()
函数也可以将时间类型的数据格式化为字符串。该函数的语法如下:
CONVERT(date, char_format)
其中,date
为待转换的时间类型的数据,char_format
为字符串格式。char_format
的取值可以是一些MySQL支持的日期时间字符串格式化:
0
:默认格式,YYYY-MM-DD1
:USA格式,MM/DD/YY2
:EUR格式,DD.MM.YY3
:根据设置,YY/MM/DD4
:当地格式,DD/MM/YY5
:只使用年份,YYYY6
:只使用月份,MM7
:只使用月份,日,MM-DD8
:只使用小时和分钟,HH:MM9
:只使用小时,HH
举个例子:
SELECT CONVERT('2022-11-11', char(10));
该查询语句的执行结果为:2022-11-11
字符串转时间
STR_TO_DATE()
函数
使用STR_TO_DATE()
函数可以将字符串类型的时间数据转换为时间类型。该函数的语法如下:
STR_TO_DATE(string, format)
其中,string
为待转换的字符串类型的时间数据,format
为字符串的格式。format
的取值必须按照时间类型的格式,否则会出现格式错误的问题。
举个例子:
SELECT STR_TO_DATE('2022-11-11 11:11:11', '%Y-%m-%d %H:%i:%s');
该查询语句的执行结果为:2022-11-11 11:11:11
CAST()
函数
使用CAST()
函数可以将一个字符串转换为时间类型。该函数的语法如下:
CAST(string AS datetime)
其中,string
为待转换的字符串类型的时间数据。
举个例子:
SELECT CAST('2022-11-11 11:11:11' AS DATETIME);
该查询语句的执行结果为:2022-11-11 11:11:11.000000
总结
本文介绍了MySQL中时间与字符串之间相互转换的几种方法。使用DATE_FORMAT()
函数和CONVERT()
函数可以将时间类型的数据格式化为字符串;使用STR_TO_DATE()
函数和CAST()
函数可以将字符串类型的时间数据转换为时间类型。需要注意的是,在进行时间和字符串的转换前,必须先了解时间格式与字符串格式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql时间与字符串之间相互转换 - Python技术站