Hive from_unixtime()生成不适当的日期

时间:2015-12-15 09:53:44

标签: hadoop hive

我正在使用一个查询从一个名为dual的虚拟表生成时间戳。但是,从表中返回的日期似乎无效。

select String(max(max_lid_date)) as prev_reqline_max_lid_date,from_unixtime(unix_timestamp(),'YYYY-MM-DD hh:mm:ss') as job_start_date,from_unixtime(unix_timestamp(),'YYYY-MM-DD 00:00:01') as pull_to_date from xxcss_ktn_req_line_detail_log;

查询结果:

prev_reqline_max_lid_date       job_start_date  pull_to_date
1970-01-01 00:00:00     2015-12-349 01:47:52    2015-12-349 00:00:01

双表结构:

hive (smart_advisor)> desc dual;
OK
col_name        data_type       comment
id               string

从中检索日期的配置单元表的结构

hive (smart_advisor)> desc xxcss_ktn_req_line_detail_log;
OK
col_name        data_type       comment
job_start_date          timestamp
job_end_date            timestamp
pull_from_date          timestamp
pull_to_date            timestamp
min_lid_date            timestamp
max_lid_date            timestamp
record_count            bigint

需要帮助解决pull_to_date和job_start_date列中的日期问题。这是我工作的日志表。

表xxcss_ktn_req_line_detail_log只包含一条记录

hive (smart_advisor)> select * from xxcss_ktn_req_line_detail_log;
OK
xxcss_ktn_req_line_detail_log.job_start_date    xxcss_ktn_req_line_detail_log.job_end_date      xxcss_ktn_req_line_detail_log.pull_from_date    xxcss_ktn_req_line_detail_log.pull_to_date       xxcss_ktn_req_line_detail_log.min_lid_date      xxcss_ktn_req_line_detail_log.max_lid_date      xxcss_ktn_req_line_detail_log.record_count
NULL    NULL    NULL    NULL    NULL    1970-01-01 00:00:00     0

1 个答案:

答案 0 :(得分:1)

您传递的格式字符串错误。 特别是,您使用的是资本D(一年中的一天)而不是小写的“d”。 您可能还需要大写字母H而不是小写字母h,因为小写字母是上午12点/下午时间。

尝试改为

hive> select from_unixtime(unix_timestamp(),'yyyy-MM-dd 00:00:01')
      from single_customer;
OK
2015-12-15 00:00:01
hive> select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')  
from single_customer;
OK
2015-12-15 08:25:22

请注意'yyyy-MM-dd HH:mm:ss'是默认设置,因此您可以使用

hive> select from_unixtime(unix_timestamp()) from single_customer;
OK
2015-12-15 08:27:16

Hive当然使用Java作为日期格式,因此您应该检查:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html