【问题标题】:Hive: Subtracting 1 year from current dateHive:从当前日期减去 1 年
【发布时间】:2015-03-17 16:36:31
【问题描述】:

我正在尝试找到从 Hive 查询中的当前日期减去 1 年和一个月的最佳方法。使用以下内容,我不相信它会考虑闰年,或者如果月份有不同的天数,所以最终代码会中断。任何帮助将不胜感激!

set my_date = from_unixtime(unix_timestamp()-365*60*60*24, 'yyyy-MM-dd');
set my_date = from_unixtime(unix_timestamp()-30*60*60*24, 'yyyy-MM-dd');

谢谢!

-丽贝卡

【问题讨论】:

    标签: date hadoop hive unix-timestamp subtraction


    【解决方案1】:

    如果你在 Hive 中有 yyyy-MM-dd hh:mm:ss 这样的日期格式,使用以下函数很容易实现

    concat((year(date_field)-1),'-', (month(date_field)-1), '-', day(date_field))

    使用 IF 和 CASE 函数来实现你的逻辑来判断它是否是闰年(将年份除以 4)

    【讨论】:

      猜你喜欢
      • 2010-12-31
      • 2011-02-14
      • 2018-11-04
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      相关资源
      最近更新 更多