我们在对mysql的数据进行分析时,经常会遇到将业务意义为时间类型的变量定义为字符串的情况。如果我们需要按照时间维度进行分析的话,首先先要将字符串转换为时间类型。这里就需要使用Mysql的函数:
STR_TO_DATE(str,format),其中,str为需要转换的字符串;format为str中时间的格式。
注意:str中必须包含年月日,时分秒可以不包含。
select STR_TO_DATE('2019','%Y%m%d %h%i%s');
select STR_TO_DATE('201901','%Y%m%d %h%i%s');
select STR_TO_DATE('20190101','%Y%m%d %h%i%s');
select STR_TO_DATE('2019010101','%Y%m%d %h%i%s');
select STR_TO_DATE('201901010101','%Y%m%d %h%i%s');
select STR_TO_DATE('20190101010101','%Y%m%d %h%i%s');
输出结果为:
null
null
2019-01-01 00:00:00
2019-01-01 01:00:00
2019-01-01 01:01:00
2019-01-01 01:01:01
另外,str的可以有不同的格式。例如:
select STR_TO_DATE('2019-01-01','%Y-%m-%d');
select STR_TO_DATE('2019/01/01','%Y/%m/%d');
select STR_TO_DATE('2019+01+01','%Y+%m+%d');
select STR_TO_DATE('2019*01*01','%Y*%m*%d');
输出结果为:
2019-01-01
2019-01-01
2019-01-01
2019-01-01