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

Convert dd/mmm/yyyy to yyyy-mm-dd

我有一个这种格式的日期:

08/Jul/2012:06:19:00 -0200

我正在尝试 select 像:

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. 将字符串从这种不寻常的格式转换为 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)