【问题标题】:sql Teradata difference in monthssql Teradata 月差
【发布时间】:2021-08-30 13:16:41
【问题描述】:

我需要获取日期之间的差异,但我只需要获取已过去的整个月份。因此,例如在“1990-05-24”和“1990-05-27”之间,它应该说 0。对于“1990-05-02”和“1990-05-29”,它也应该是 0,因为月份还没有完成了。

我已经使用 MONTHS_BETWEEN() 得到了月份的差异,但是我得到了带小数的月份,并且 ROUNDing 不是一个选项,因为它有时应该向上,有时应该向下。

我考虑将所有日期设置为第 01 天。在 Closing_date 和 Opening_date 两个列中。但不知道怎么做。

【问题讨论】:

  • 最简单的方法是使用cast(months_between(..) as int)截断

标签: sql date teradata


【解决方案1】:

我认为您想计算月份之间的边界。如果是这样,您可以在截断到月初后使用months_between()

months_between(trunc(date1, 'MON'), trunc(date2, 'MON')

【讨论】:

    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 2020-06-03
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多