Hive 将年/月/日转换为年/月/日

Hive 将年/月/日转换为年/月/日,hive,unix-timestamp,Hive,Unix Timestamp,我有以下格式的日期: 08/Jul/2012:06:19:00 -0200 我试着做如下选择: from_unixtime(unix_timestamp(substr(hiredate,0,10),'dd/MMM/yyyy HH:mm:ss'),'yyyy-MM-dd') 但它不起作用。我想把它转换成2012-07-08。我正在使用quickstart cloudera 5.12查看此两步流程是否适用于您: 将字符串从这种不寻常的格式转换为unixtimestamp 将unixtimesta

我有以下格式的日期:

08/Jul/2012:06:19:00 -0200
我试着做如下选择:

from_unixtime(unix_timestamp(substr(hiredate,0,10),'dd/MMM/yyyy HH:mm:ss'),'yyyy-MM-dd')

但它不起作用。我想把它转换成
2012-07-08
。我正在使用
quickstart cloudera 5.12

查看此两步流程是否适用于您:

  • 将字符串从这种不寻常的格式转换为
    unixtimestamp
  • unixtimestamp
    (步骤1的结果)格式化为所需格式

  • 查看此两步流程是否适用于您:

  • 将字符串从这种不寻常的格式转换为
    unixtimestamp
  • unixtimestamp
    (步骤1的结果)格式化为所需格式

  • 谢谢你编辑它谢谢你编辑它谢谢你mazaneicha。成功了。请告诉我什么是Z和d。
    Z
    是区域偏移(),
    d
    只是一个列别名(标题):。如果我想将此日期插入配置单元动态分区(按yyyy字符串、mm字符串、dd字符串分区),那么如何在insert语句中使用它。您可能会使用
    year
    在其上起作用。如果你被卡住了,只需单独发布一个问题:)谢谢你,马扎尼卡。成功了。请告诉我什么是Z和d。
    Z
    是区域偏移(),
    d
    只是一个列别名(标题):。如果我想将此日期插入配置单元动态分区(按yyyy字符串、mm字符串、dd字符串分区),那么如何在insert语句中使用它。您可能会使用
    year
    在其上起作用。如果你被卡住了,只需单独提出一个问题:)
    0: jdbc:hive2://beeline> select from_unixtime(unix_timestamp('08/Jul/2012:06:19:00 -0200','dd/MMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd') d;
    
    +-------------+--+
    |      d      |
    +-------------+--+
    | 2012-07-08  |
    +-------------+--+
    1 row selected (0.825 seconds)