SQL 2012 - 查询 return 月号

SQL 2012 - Query to return month number

我需要 return 给定日期的月数。对于当前月份,月份编号将为 0。对于下个月,MonthNo 将为 1。上个月将为 -1,2 个月前将为 -2。 ETC 因此,假设今天是 2020 年 6 月 16 日,请参见下面的示例数据:

IF OBJECT_ID('tempdb..#DateTest') IS NOT NULL
    DROP TABLE #DateTest

CREATE TABLE #DateTest
(
DateTest Date
)

INSERT INTO #DateTest
VALUES
('23/08/2020'),
('14/06/2020'),
('01/06/2020'),
('15/05/2020'),
('01/05/2020'),
('18/01/2020') 

Select * FROM #DateTest

我需要 return 以下内容:

Date          MonthNo
23/08/2020    2
14/06/2020    0
01/06/2020    0
15/05/2020    -1
01/05/2020    -1
18/01/2020    -5

有什么方法可以return这个信息吗?

看起来很普通DATEDIFF,它应该适合你:

SELECT 
  DateTest AS [Date],
  DATEDIFF(MONTH, GETDATE(), DateTest) AS [MonthNo]
FROM #DateTest

Demo