Hive 中的时间加减暨间隔函数INTERVAL

时间:2024-11-06 10:21:51

sql计算时,一般我们来做时间加减会unix_timestamp和from_unixtime结合使用:先把时间unix距1970年至今的整数秒,再进行加减就达到了时间前后的目的,详见我另一篇blog:/mochou111/article/details/104520108

现在我们来认识一个在时间加减上更为简便的函数:INTERVAL

举例说明,我们想要

  • 当前时间十秒前的时间

select current_timestamp() - INTERVAL 10 second

  • 1年后的时间 

select current_timestamp()  + INTERVAL 1 year

还可以按照年月,月日,日时,时分,分秒的格式来间隔

格式是以任意分隔符(一般是空格),对应的是year_month,month_day等,需要注意的是必须是相邻的,且大单位在前,比如只能是年月(year_month),不能是月年,更不能是年时,年分等

比如一年一月前

select current_timestamp()  - INTERVAL '1 1' year_month