问题描述
我们正在尝试将 greenplum(postgresql) 迁移到 hive,并且以下 plsql 查询需要转换为 hivesql。请帮帮我。
select extract(days from ((date_trunc('MONTH',column1::date) + INTERVAL '1 MONTH - 1 day')::date)))::dec,2)::numeric daily;
select extract(year from column1)::character varying;
select extract(month from column2)::character varying;
注意:提取,天数在配置单元中不可用。请帮助我们。
我们需要转换 Hivesql。
解决方法
extract
在 hive 2.2 及更高版本中可用。
可以看到下面sql的输出。
select extract(day from current_date) dy,extract(month from current_date) mon,extract(year from current_date) yr
现在回答您的问题,
select extract(days from ((date_trunc('MONTH',column1::date) + INTERVAL '1 MONTH - 1 day')::date)))::dec,2)::numeric daily;>
- 我认为这是每月的最后一天。您可以使用
extract(day from last_day(column1))
select extract(year from column1)::character变量;
- 您可以使用
cast ( extract(year from column1) as string)
请注意 hive 对数据类型非常敏感,我假设列在两种情况下都是日期时间。