背景 |
如题,简单说明一下此需求出现的背景。通过爬虫在互联网上抓取的一些数据中包含年月日格式的日期数据,并且没有对日期进行处理,直接以varchar数据类型保存到了MySQL数据库中。
但是,后期在对这些数据进行分组统计时,字符串格式的日期处理起来并不是很方便。因此有了这篇文章,希望可以帮到有需要的朋友。
解决方案 |
在MySQL关于处理日期和时间的函数中找到了它:
但是,这个函数处理的日期字符串中并不包含“年月日”的格式,直接处理会返回Null值。所以我们先把“年月日”格式的字符串转换为 STR_TO_DATE 可以处理的字符串。比如可以使用 REPLACE 函数把字符串中的“年月日”替换为“-”。
REPLACE(REPLACE(REPLACE(releaseDate,'年','-'),'月','-'),'日','')
然后再用 STR_TO_DATE 函数把字符串转换为 Date类型。
str_to_date(REPLACE(REPLACE(REPLACE(releaseDate,'年','-'),'月','-'),'日',''),'%Y-%m-%d')