如何在配置单元中将yyyymmdd格式(int)的日期转换为datetime格式?

vatpfxk5  于 2021-06-25  发布在  Hive
关注(0)|答案(5)|浏览(452)

从unixtime(unix\u timestamp('20190901','yyyyymmdd')中选择;好的+

chy5wohz

chy5wohz1#

-----+| 2019-01-01 00:09:00 |+

scyqe7ek

scyqe7ek2#

有效的方法是使用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\u时间戳,那么请使用适当的格式 'yyyyMMdd' :

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

请参见此处的数据格式:SimpleDataFormat

jecbmhm3

jecbmhm34#

--+
期望输出为2019-09-01 00:00:00。我做错什么了?

a0zr77ik

a0zr77ik5#

我想出来了。mm是分,mm是月。
它应该是yyyymmdd而不是yyyymmdd

相关问题