如何计算以月为单位的差异 SQL DB2

Posted

技术标签:

【中文标题】如何计算以月为单位的差异 SQL DB2【英文标题】:HOW TO CALCULATE DIFFERENCE IN MONTHS SQL DB2 【发布时间】:2021-05-19 19:46:08 【问题描述】:

我有一个数字格式“202101”的变量 CREATION_DATE 表示年和月,我需要计算该日期和当前日期之间的月差,我已经尝试过:

MONTHS_BETWEEN(
  DATE(TIMESTAMP_FORMAT(CHAR(CREATION_DATE),'YYYYMM')),
  DATE(TIMESTAMP_FORMAT(CHAR(
    YEAR(CURRENT DATE)*100+MONTH(CURRENT DATE)),
    'YYYYMM'
  ))) 

还有这个:

MONTHS_BETWEEN(
  DATE(TIMESTAMP_FORMAT(CHAR(CREATION_DATE),'YYYYMM')),
  CURRENT DATE
) 

【问题讨论】:

问题是什么? 这取决于您将如何计算它。假设您有 YYYYMM,表达式可能是:(YEAR (CURRENT DATE) - YYYY) * 12 + MONTH (CURRENT DATE) - MM。它对你有用吗? 【参考方案1】:

看看这个:

WITH temp(creation_date) AS (VALUES ('202102')
)
SELECT creation_date
     , CURRENT date
     , months_between(CURRENT date, DATE(TIMESTAMP_FORMAT(CHAR(CREATION_DATE),'YYYYMM')))
FROM temp

【讨论】:

以上是关于如何计算以月为单位的差异 SQL DB2的主要内容,如果未能解决你的问题,请参考以下文章

给定特定格式的日期,我如何确定以月为单位的年龄?

R语言ggplot2可视化:自定义设置X轴上的时间间隔(中断以月为单位),使用scale_x_date()自定义设置坐标轴间隔和标签添加标题副标题题注信息

如何在Javascript中循环几个月

在 Db2 中如何计算相邻行的差异

如何从 DB2 中的两个时间戳中获取差异?

获取开始日期和结束日期之间的日期