如何在GCP查询MySQL时将Month DD, YYYY格式字符串转为DATE类型
MySQL长月份格式字符串转DATE类型解决方案
核心用法
MySQL中转换非标准格式的日期字符串需使用STR_TO_DATE()函数,你需要指定与输入字符串完全匹配的格式规则,针对December 31, 2020这类长月份格式,写法如下:
SELECT STR_TO_DATE(input_str, '%M %d, %Y') AS converted_date -- 示例:SELECT STR_TO_DATE('December 31, 2020', '%M %d, %Y') AS converted_date; -- 输出结果:2020-12-31(DATE类型)
格式符说明
%M:匹配英文全拼月份(January~December)%d:匹配两位数日期(01~31)%Y:匹配四位数年份
格式串中的空格、逗号需和输入字符串的格式完全对应,否则会返回NULL。
原有写法失效原因
CAST(input_str AS DATE)和无格式参数的CONVERT()仅能识别MySQL默认支持的标准日期格式(如YYYY-MM-DD、MM/DD/YYYY等),无法适配自定义的长月份带分隔符的格式。
如果后续需要处理短月份格式(如Dec 31, 2020),只需把格式符中的%M替换为%b即可。
内容的提问来源于stack exchange,提问作者missbarium
相关产品推荐
相关产品推荐

