[转]MySQL怎么将字符串转为datetime类型

原文地址:https://zhuanlan.zhihu.com/p/553928079

以前只知道第一种方法:

方法1:使用str_to_date()函数

str_to_date()是专门的字符串转日期函数,可以将字符串转换为日期时间值。

  1. 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类型的语法

  1. CAST(字符串值 AS datetime)

但是需要指出的是,字符串必须至少包含年月日,还有不能包含汉字(如'年'),如果有汉字,可以先处理一下,替换成-或者.

其实'日'为0也是可以转换的,例如:

SELECT CAST('8.8.0' AS DATETIME);

结果:2008-08-00 00:00:00

注意,此结果可以select显示,但是无法插入表中,所以要插入还是需要提前加工为正确的日期,如上面改为 8.8.1,即2008年8月1日

 

posted @ 2023-04-21 09:42  dirgo  阅读(940)  评论(0编辑  收藏  举报