转换dd / mmm / yyyy为yyyy-mm-dd

时间:2020-06-12 11:42:47

标签: 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

1 个答案:

答案 0 :(得分:3)

查看此两步过程是否对您有用:

  1. 将这种非常规格式的字符串转换为unixtimestamp
  2. unixtimestamp(步骤1的结果)格式化为所需格式
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)