将databricks sql中的字符串转换为日期将返回null

ffvjumwh  于 2021-07-12  发布在  Spark
关注(0)|答案(2)|浏览(485)

我有一个名为date的字符串列的表,其中包含值( dd-Mon-yy 格式化数据和 yyyy-mm-dd 格式化数据)

01-jan-21
01-feb-21
01-mar-21
2021-01-01
2021-02-01

我想把它转换成 yyyy-mm-dd 所有成员 to_date(date,'yyyy-mm-dd') 但它返回null。
如何将字符串转换为特定的日期格式 yyyy-mm-dd 在spark sql中?

wztqucjr

wztqucjr1#

由于有两种不同的日期类型,因此需要分别指定它们:

select coalesce(to_date(date,'yyyy-MM-dd'), to_date(date,'dd-MMM-yyyy'))
sg3maiej

sg3maiej2#

您需要确定列的格式。在这种情况下,可以使用长度:

(case when length(date) = 10 then to_date(upper(date), 'yyyy-MMM-dd')
      else to_date(date, 'yyyy-mon-dd')
 end)

相关问题