如何计算时间戳之间的月数?

mf98qq94  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(704)

使用impala sql,有没有一种简洁的方法来计算两个时间戳之间的月数?
这个 datediff 函数只返回两个时间戳之间的天数,但我希望有一种优雅的方法可以对月数执行相同的计算。

weylhg0b

weylhg0b1#

MONTHS_BETWEEN(TIMESTAMP newer, TIMESTAMP older) 目的:返回两个时间戳值的日期部分之间的月数。除了两个日期之间的整月之外,还可以包含表示额外天数的小数部分。分数部分的计算方法是用天数除以31(不考虑月份)。
返回类型:双
加入:cdh 5.5.0/ Impala 2.3.0

jdgnovmf

jdgnovmf2#

不幸的是,很少有一个优雅的答案来回答这个问题,即使是在python这样的全功能编程语言中。答案取决于你如何定义 # of months between two timestamps .
如果要使用impala内置来解决这个问题,我会首先对timestamp列进行排序,然后使用 TO_DATE(ts) ,然后使用 YEAR(date) , MONTH(date) ,和 DAY(date) 从日期字符串中提取组件,最后使用与https://stackoverflow.com/a/4040338/171965,并修改为比较日期,如果较后日期的日期低于较早日期的日期,则减去一个月。

相关问题