将YYYYMMDD转换为presto/hive中的天



我有日期列"YYYYMMDD";,int类型。我想转换为";"天";比如"星期一"。

下面的sql可能会对您有所帮助。

hive>
select from_unixtime(unix_timestamp(cast(20200802 as string),'yyyyMMdd'),'u') as weekdaynumber,
CASE from_unixtime(unix_timestamp(cast(20200802 as string),'yyyyMMdd'),'u')
WHEN 1 THEN 'Monday'
WHEN 2 THEN 'Tuesday'
WHEN 3 THEN 'Wedneday'
WHEN 4 THEN 'Thursday'
WHEN 5 THEN 'Friday'
WHEN 6 THEN 'Saturday'
WHEN 7 THEN 'Sunday'
END AS day_of_week
OK
7       Sunday

在蜂窝中尝试以下操作

select from_unixtime(unix_timestamp(cast('20200802' as string),'yyyyMMdd'),'EEEE') ;

这将返回CCD_ 1作为输出。

假设您想在Presto中执行此操作,则可以将castvarchar组合,然后再将parse_datetime组合。由于parse_datetime返回timestamp with time zone,因此需要使用date将解析后的值修剪为日期部分。

presto> SELECT date(parse_datetime(CAST(20200801 AS varchar), 'yyyyMMdd'));
_col0
------------
2020-08-01

相关内容

  • 没有找到相关文章

最新更新