从 Greenplum Query 迁移 Hive 日期和周函数

Posted

技术标签:

【中文标题】从 Greenplum Query 迁移 Hive 日期和周函数【英文标题】:Hive Date and Week Functions Migration From Greenplum Query 【发布时间】:2021-09-07 05:07:47 【问题描述】:

您能否按照以下声明帮助我,我想从 Greenplum 迁移到 HiveSQL。请帮助我。

(date_trunc('week',idate) - INTERVAL '1 week')::DATE date_from
((date_trunc('week',idate) - INTERVAL '1 week')::DATE + '6 days'::INTERVAL)::DATE
date_trunc('week',idate)::DATE

注意:idate 是我必须解析像 2021-02-20 这样的参数

【问题讨论】:

【参考方案1】:

如果你想要

    找到一周的开始然后使用select next_day(date_sub(current_date, 7), 'MON') 将日期加 1 周,然后使用 select current_date + interval 7 day 将日期转换为字符串,然后使用select to_date(current_date )

现在,从您的代码看来,您正在寻找一周的开始,然后从中扣除 1 周。 (date_trunc('week',idate) - INTERVAL '1 week') 这可以在 hive 中重写,如下所示。

next_day(date_sub(current_date, 7), 'MON') - interval 7 day

我以为星期一是你一周的开始。请在使用前验证 SQL。

【讨论】:

我已经迁移了,请验证 : (date_trunc('week',idate) - INTERVAL '1 week')::DATE -->> cast(trunc(next_day(date_sub(current_date, 7) , 'MON')) 作为日期)请帮助我 这个next_day(date_sub(current_date, 7), 'MON') 将给出日期时间。你不必再次施放它。你能分享你的sql和确切的错误吗?

以上是关于从 Greenplum Query 迁移 Hive 日期和周函数的主要内容,如果未能解决你的问题,请参考以下文章

GreenPlum SQL 语句迁移到 HiveSQL

支持greenplum string_agg 转换成hivesql

PLSQL 到 Hive 查询函数的对话

如何将oracle数据迁移到greenplum数据库

Greenplum非并行数据迁移--pg_dump

Greenplum非并行数据迁移--pg_dump