仅比较年和月

Vam*_*shi 0 sql db2

我正在使用它来比较年和月,但是当月份小于当前月份时它会​​失败,即使年份大于当前年份

SELECT * FROM DUMMY_TABLE WHERE
YEAR(PREV_ELIG_REV_DT) >= YEAR(CURRENT TIMESTAMP)
AND MONTH(PREV_ELIG_REV_DT) >= MONTH(CURRENT TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)

Mik*_*scu 5

当 YEAR 相等时,您可以添加和额外的条件来匹配情况。

SELECT * 
  FROM DUMMY_TABLE 
  WHERE
     YEAR(PREV_ELIG_REV_DT) > YEAR(CURRENT TIMESTAMP)
  OR (    YEAR(PREV_ELIG_REV_DT) = YEAR(CURRENT TIMESTAMP)
     AND MONTH(PREV_ELIG_REV_DT) >= MONTH(CURRENT TIMESTAMP))
Run Code Online (Sandbox Code Playgroud)

更新

正如@Clockwork-Muse 所说,可能会产生更好性能的另一种方法是获取当月的开始并与之进行比较:

SELECT * 
  FROM DUMMY_TABLE 
  WHERE
     PREV_ELIG_REV_DT >= (CURRENT DATE - (DAY(CURRENT DATE)-1) DAYS)
Run Code Online (Sandbox Code Playgroud)