【问题标题】:spark sql - converting date from MMM dd, yyyy to yy-MMM-ddspark sql - 将日期从 MMM dd、yyyy 转换为 yy-MMM-dd
【发布时间】:2019-11-28 18:44:01
【问题描述】:

我的日期为string,格式为MMM dd, yyyy,我想将其转换为yy-MMM-dd 格式

Jan 14, 2018 应转换为 18-JAN-14

以下代码将其转换为yyyy-mm-ddformta

select to_date(FROM_UNIXTIME(unix_timestamp("Jan 14, 2018","MMM dd, yyyy"))) as date 

但是,以下代码返回 null

select to_date(FROM_UNIXTIME(unix_timestamp("Jan 14, 2018","MMM dd, yyyy")), "yy-MMM-dd") as date 

【问题讨论】:

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


    【解决方案1】:

    使用date_format 将日期转换为字符串:

    > spark.sql("""select date_format(FROM_UNIXTIME(unix_timestamp("Jan 14, 2018","MMM dd, yyyy")), "yy-MMM-dd") as date""").show
    +---------+
    |     date|
    +---------+
    |18-Jan-14|
    +---------+
    

    【讨论】:

      【解决方案2】:

      在 Hive 中,to_date 不接受格式参数。所需的格式应该是from_unixtime 的参数。

      to_date(FROM_UNIXTIME(unix_timestamp("Jan 14, 2018","MMM dd, yyyy"), "yy-MMM-dd"))
      

      请注意,to_date 转换仅在 Hive 版本 2.1.0 之前需要,以转换 string 返回类型,因为更高版本返回 date 类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-10
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-28
        相关资源
        最近更新 更多