谈到 Hive 中的日期操作,许多用户首先联想到的是 DATEADD 函数——它确实能够为指定日期增加天数,使用起来非常便捷。然而,当你需要从一个日期中减去若干天数时,就需要留意了:Hive 内置的 DATEADD 函数并不直接支持这种减法运算。

不必担心,解决之道其实很简单。Hive 提供了专门的 date_sub 函数,用于执行日期减法。例如,下面的查询可以轻松获取 30 天前的日期:
SELECT date_sub(current_date, 30) as past_date;
请注意,这里使用的是 date_sub 而非 DATEADD。尽管函数名称不同,但其效果完全等同于“日期逆运算”——即从当前日期向前回溯 30 天。
当然,在应对更复杂的场景(例如跨月、跨年或不规则周期)时,仅靠这两个函数可能无法满足需求。此时可以尝试结合 date_format、parse_date 等字符串处理函数,或者自行编写自定义 UDF 来实现。总而言之,Hive 的日期处理工具集相当丰富,关键在于你所需的精度与灵活性。
