[转]MySQL怎么将字符串转为datetime类型
原文地址:https://zhuanlan.zhihu.com/p/553928079
以前只知道第一种方法:
方法1:使用str_to_date()函数
str_to_date()是专门的字符串转日期函数,可以将字符串转换为日期时间值。
- str_to_date(str, format)
str: 必须项。要格式化为日期的字符串
format: 必须项。要使用的格式。
例子:SELECT STR_TO_DATE("2022,6,14 10,40,10", "%Y,%m,%d %h,%i,%s");
但是这个需要精确的写明格式,如果格式与给出的字符串不一样就会出错,而且格式写法也容易忘.
试用了第二种方法,不需要指定格式,在处理数据的时候还是非常有用的,
方法2: 使用CAST() 函数
CAST() 函数用于类型转换,将(任何类型的)值转换为指定的数据类型。
将字符串转为datetime类型的语法
- CAST(字符串值 AS datetime)
但是需要指出的是,字符串必须至少包含年月日,还有不能包含汉字(如'年'),如果有汉字,可以先处理一下,替换成-或者.
其实'日'为0也是可以转换的,例如:
SELECT CAST('8.8.0' AS DATETIME);
结果:2008-08-00 00:00:00
注意,此结果可以select显示,但是无法插入表中,所以要插入还是需要提前加工为正确的日期,如上面改为 8.8.1,即2008年8月1日