【问题标题】:Hive query to Extract Date and Hour separately from StringHive 查询以分别从字符串中提取日期和时间
【发布时间】:2017-07-06 16:49:17
【问题描述】:

我需要从 hive 中的字符串列中提取日期和小时。

表:

select TO_DATE(from_unixtime(UNIX_TIMESTAMP(dates,'dd/MM/yyyy'))) from dates;

output:

0016-01-01
0016-01-01

select TO_DATE(from_unixtime(UNIX_TIMESTAMP(dates,'hh'))) from dates;

output:

1970-01-01
1970-01-01

请告知如何从表格列中分别获取日期和小时。

【问题讨论】:

  • (1) 删除不相关的标签 (2) 用文字替换图片 (3) 存储日期/时间戳的方法有很多,但这是最糟糕的一种

标签: hadoop hive hiveql


【解决方案1】:

我已将数据样本更改为更合理的内容

with dates as (select explode(array('1/11/16 3:29','12/7/16 17:19')) as dates)

select  from_unixtime(unix_timestamp(dates,'dd/MM/yy HH:mm'),'yyyy-MM-dd')  as the_date
       ,from_unixtime(unix_timestamp(dates,'dd/MM/yy HH:mm'),'H')           as H
       ,from_unixtime(unix_timestamp(dates,'dd/MM/yy HH:mm'),'HH')          as HH

from    dates

+------------+----+----+
|  the_date  | h  | hh |
+------------+----+----+
| 2016-11-01 |  3 | 03 |
| 2016-07-12 | 17 | 17 |
+------------+----+----+

【讨论】:

    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2018-05-25
    • 2011-03-31
    • 1970-01-01
    • 2023-01-04
    • 2020-08-20
    相关资源
    最近更新 更多