mysql str转换 date的方法
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类型的日期转换为指定格式的字符串。
