Databricks 10.4 LTS中to_timestamp转换报错:非法模式字符'o'求助
解决Databricks中to_timestamp转换的格式错误问题
错误原因分析
你的转换语句报错IllegalArgumentException:Illegal pattern character 'o',核心问题是日期格式字符串使用了错误的模式字符:
MI不是有效的分钟标识:Spark日期格式规则里,小写mm代表分钟,大写M对应月份,I属于非法模式字符;YYYY不适合当前场景:YYYY表示周基年份(Week-based Year),而你的数据是普通日历年份,应使用yyyy;hh不符合数据格式:hh要求两位12小时制小时,但你的数据里存在单数字小时(如2:15 PM),用h更合适,它支持一位或两位小时的匹配。
正确的转换语句
将格式字符串修正为匹配样本数据的模式:
select to_timestamp(joiningDate, 'MMM dd yyyy h:mm a') from employee
格式字符说明
MMM:匹配英文月份缩写(如Mar、Apr)dd:匹配两位日期(如15、12)yyyy:匹配四位日历年份(如1978、1983)h:匹配12小时制的小时(支持一位或两位,如2、11)mm:匹配两位分钟(如15、11)a:匹配上午/下午标识(如PM、AM)
内容的提问来源于stack exchange,提问作者Tanvi Mirza
相关产品推荐
相关产品推荐

