MySQL数据库中,我们经常会遇到需要将字符串类型的时间转换为时间类型的需求,此时我们通常会用到MySQL的内置函数STR_TO_DATE。
STR_TO_DATE(str,format)
其中,str代表需要转换的时间字符串,format代表时间字符串的格式。我们可以通过format中的占位符来指定具体的时间格式,如:
SELECT STR_TO_DATE('2021-06-01','%Y-%m-%d')
上述代码的执行结果是一个时间类型的值:2021-06-01 00:00:00。
同时,我们也可以在format中加入多个占位符,将多个时间字段拼接起来,如:
SELECT STR_TO_DATE('2021-06-01 10:23:58','%Y-%m-%d %H:%i:%s')
执行结果是2021-06-01 10:23:58的时间类型值。
在使用STR_TO_DATE函数时,需要注意使用的时间字符串格式必须严格符合format中的占位符格式,否则会导致转换失败。如果需要将非标准格式的时间字符串转换为时间类型,可以使用DATE_FORMAT函数进行转换。
DATE_FORMAT(str,new_format)
其中,str代表需要转换的时间字符串,new_format代表需要转换为的时间格式,如:
SELECT DATE_FORMAT('2021年06月01日10时23分58秒','%Y-%m-%d %H:%i:%s')
执行结果是:2021-06-01 10:23:58的时间类型值。
总结:在MySQL中,将字符串类型的时间转换为时间类型可以使用STR_TO_DATE和DATE_FORMAT函数,需要保证时间字符串格式严格符合format中的占位符格式。