从当前日期回溯 24 个月的 where 子句存在问题

Posted

技术标签:

【中文标题】从当前日期回溯 24 个月的 where 子句存在问题【英文标题】:Trouble with a where clause which looks back 24 months from current date 【发布时间】:2019-11-12 02:25:40 【问题描述】:

我有这个 where 子句,它在 Impala 中运行良好,但在 Hive 中引发错误。我要做的只是在当天之前 24 个月引入数据。

select * from my.database
where period_date > add_months(now(), -24);

只是出错,没有产生任何结果。

【问题讨论】:

throwing an errorerroring out 在没有更多信息的情况下作为问题描述毫无用处。您收到错误消息吗?如果是这样,您收到的确切信息是什么。如果您没有收到错误消息,那么抛出错误具体是什么意思? 【参考方案1】:

与 Impala 不同,Hive 没有 now() 函数。它通过提供current_datecurrent_timestamp 寄存器(从版本1.2 [ref] 开始)来遵守ANSI SQL。所以对于 Hive,这应该可以工作:

select * from my.database
where period_date > add_months(current_date, -24); 

【讨论】:

以上是关于从当前日期回溯 24 个月的 where 子句存在问题的主要内容,如果未能解决你的问题,请参考以下文章

在 where 子句中从当前日期减去 30 天

如何使用 datetime Python 模块计算距当前日期六个月的日期?

从 DB2 查询中 where 子句中输入的日期获取上个月

SQL - 按日期和年份求和

从 Netezza 数据库中获取最近 24 个月的数据

我们如何从当前日期取回 12 个月的日期 [重复]