(Databricks SQL)以STRING (yyyyMMDD)形式存储的日期不能转换为Date (yyyy-MM-



我花了3个小时在谷歌上搜索这个问题,但似乎没有什么特别在Databricks SQL版本中工作。我必须使用一个数据库,有人决定最好将日期存储为STRING,短期内没有办法。

当前日期格式(STRING)如下:名称

我想要的是(DATE):yyyy-MM-DD

我尝试了CAST,我尝试了CONVERT,我尝试了5种不同的解决方案,从堆栈和其他网站,但代码似乎是为SQL开发,有更多的功能可用,我被迫与Databricks工作。我将感激任何帮助!

tx !

我对Databricks一无所知,但是经过一些谷歌搜索,它看起来有一个MAKE_DATE函数可以帮助您。您可以从YYYYMMDD字符串中提取年、月和日的值。如果您的日期字符串名为ds:

,它可能看起来像这样
MAKE_DATE(
SUBSTRING(ds FROM 1 FOR 4),
SUBSTRING(ds FROM 5 FOR 2),
SUBSTRING(ds FROM 7 FOR 2)
)

如果您希望代码更加透明,您可以自己将子字符串强制转换为整数,而不是依赖于将参数隐式转换为MAKE_DATE。