欢迎访问宙启技术站
智能推送

mysql str转换 date的方法

发布时间:2023-05-16 14:00:05

MySQL中str转换为date可使用函数STR_TO_DATE,该函数用于将字符串转换为日期格式。

语法:

STR_TO_DATE(str,format)

其中str表示需要转换的字符串,format表示字符串的格式,格式中各个元素的含义如下:

元素 含义 范围

%Y 四位年份 1901-2155

%y 两位年份 00-99

%m 月份 01-12

%c 同%m 1-12

%d 日期 01-31

%e 同%d 1-31

%H 小时(24小时制) 00-23

%h 小时(12小时制) 01-12

%i 分钟 00-59

%s 秒钟 00-59

%p 上午/下午 AM/PM

%w 星期几 0-6

%a 缩写星期名称 Sun-Sat

%W 完整星期名称 Sunday-Saturday

%b 缩写月份名 Jan-Dec

%M 完整月份名 January-December

例如,如果要将日期字符串"2021-11-11"转换为date类型,可以使用如下SQL语句:

SELECT STR_TO_DATE('2021-11-11','%Y-%m-%d') AS '日期';

执行结果为:

日期

2021-11-11

如果需要将日期字符串转换为datetime类型,则可以在format中加入时间元素,例如:

SELECT STR_TO_DATE('2021-11-11 12:30:15','%Y-%m-%d %H:%i:%s') AS '时间';

执行结果为:

时间

2021-11-11 12:30:15

需要注意的是,在使用STR_TO_DATE函数时,format中的元素必须与str中的元素一一对应,否则会出现错误。例如,以下SQL语句将报错:

SELECT STR_TO_DATE('2021-11-11','%m-%d-%Y') AS '日期';

执行结果为:

ERROR 1411 (HY000): Incorrect datetime value: '2021-11-11' for function str_to_date

因为format中的%m对应的是月份,而str中的"2021-11-11"中的 个元素是年份,所以会出现错误。

除了使用STR_TO_DATE函数,还可以使用DATE_FORMAT函数将date类型的日期转换为指定格式的字符串。例如,以下SQL语句将date类型的日期转换为"yyyy-mm-dd"格式的字符串:

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d') AS '日期';

执行结果为:

日期

2021-12-09

总结:

在MySQL中,将字符串转换为date类型可使用STR_TO_DATE函数,需要指定字符串的格式。在使用该函数时,需要注意format中各个元素的含义及与str中元素的对应关系。同时,可以使用DATE_FORMAT函数将date类型的日期转换为指定格式的字符串。