【问题标题】:Getting null while converting string to date in spark sql在 spark sql 中将字符串转换为日期时获取 null
【发布时间】:2021-05-24 14:50:22
【问题描述】:

我的日期格式为“2020 年 6 月 30 日”。它是一个字符串,我想将其转换为日期格式。

我尝试过的方法列表

Cast('6/30/2020' as date) #returns null
to_date('6/30/2020','yyyy/MM/dd') #returns null

我还尝试拆分字符串,然后将其连接成数据。 在尝试了所有这些并将所有可能的组合放入 to_date 函数之后,我仍然得到答案为空。

现在我很困惑,因为我已经使用了所有函数将字符串转换为日期。 提前感谢您的帮助。

【问题讨论】:

    标签: sql apache-spark apache-spark-sql


    【解决方案1】:

    您使用的日期格式不正确。试试这个:

    select to_date('6/30/2020', 'M/dd/yyyy')
    

    如果你想格式化你的结果,你可以使用date_format:

    select date_format(to_date('6/30/2020', 'M/dd/yyyy'), 'yyyy/MM/dd')
    

    请注意,to_date 将给定字符串 转换为给定格式,而date_format 将给定日期转换为 给定格式。

    【讨论】:

    • 当指定的日期格式为“M/dd/yyyy”时,它在 2020 年 12 月 30 日如何工作以及为什么 2020 年 6 月 30 日不能与“MM/dd/yyyy”一起工作2020 年 12 月 30 日是。
    • 因为如果你指定 MM,你需要月份有 2 位数字。但是 6 只有一位,所以格式不正确。请注意,M 的数量是指最小位数。
    • @BrownBatman 请参阅the docs 了解有关日期字符串格式的更多详细信息。
    猜你喜欢
    • 2021-06-12
    • 2021-12-21
    • 1970-01-01
    • 2019-04-12
    • 2019-08-31
    • 2021-12-25
    • 2015-08-23
    相关资源
    最近更新 更多