Azure Databricks SQL字符串转日期返回Null问题求助
解决Azure Databricks SQL字符串日期转日期类型返回Null的问题
问题原因
Databricks SQL的cast函数默认只识别yyyy-MM-dd格式的字符串日期,而你的数据是yyyy/MM/dd(比如'2022/08/22')格式,不符合默认规则,所以转换失败返回Null。
解决方案
方法1:用
to_date指定日期格式
这是最直接的方式,明确告诉函数你的日期字符串格式:select to_date(ColumnName, 'yyyy/MM/dd') from TableName;格式符说明:
yyyy代表四位年份,MM代表两位月份,dd代表两位日期,和你的数据格式完全匹配即可。方法2:替换分隔符后再用
cast
把日期字符串里的/替换成默认识别的-,再做转换:select cast(replace(ColumnName, '/', '-') as date) from TableName;方法3:兼容无效日期的
try_to_date
如果表中存在格式不一致的日期字符串,用try_to_date可以避免查询报错,仅对格式匹配的字符串转换,不匹配的返回Null:select try_to_date(ColumnName, 'yyyy/MM/dd') from TableName;
内容的提问来源于stack exchange,提问作者SBC
相关产品推荐
相关产品推荐

