如何将YYYYMMDD格式的日期(int)转换为蜂巢中的日期时间格式?

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

select from_unixtime(unix_timestamp('20190901','yyyymmdd'));;好+ ---------------------- +| _c0 |+ ---------------------- +| 2019-01-01 00:09:00 |+ ---------------------- +

所需的输出是2019-09-01 00:00:00。我在做什么错?

datetime hive hiveql
2个回答
0
投票

想通了。毫米是分钟,毫米是月。

应该是yyyyMMdd而不是yyyymmdd


0
投票

有效的方法是使用substr和concat_ws:

 with your_table as (select 20190901 as initial_date)
   select concat_ws('-',substr(initial_date, 1, 4),  substr(initial_date, 5, 2), substr(initial_date, 7, 2)) as dt from your_table;

结果

2019-09-01

如果您更喜欢使用unix_timestamp,则使用正确的格式'yyyyMMdd'

 select from_unixtime(unix_timestamp('20190901','yyyyMMdd'));

在此处查看数据格式:SimpleDateFormat

© www.soinside.com 2019 - 2024. All rights reserved.