将 ddmmmyyyy 转换成 yyyy-mm-dd。

问题描述 投票:1回答:2

我有一个日期是这样的格式。

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.

hive unix-timestamp
2个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.