如何获取临时表中每条记录的月份差异

时间:2015-03-14 21:36:24

标签: sql-server

我有以下临时表

CREATE TABLE #t ( ID INT, V FLOAT, D DATE )

INSERT  INTO #t
VALUES  ( 1, 1, '2014-07-01' ),
        ( 1, 2, '2014-08-02' ),
        ( 1, 3, '2014-09-03' ),
        ( 2, 7, '2014-10-31' ),
        ( 2, 5, '2014-11-28' ),
        ( 2, 8, '2014-12-31' ),
        ( 2, 11, '2015-01-30' );

我想从今天的2015年3月14日开始查找我的临时数据库中每条记录的月份差异。 决赛桌应该是这样的

   ( 1, 1, '2014-07-01', 9),
    ( 1, 2, '2014-08-02', 8),
    ( 1, 3, '2014-09-03', 7),
    ( 2, 7, '2014-10-31', 6 ),
    ( 2, 5,  '2014-11-28', 5),
    ( 2, 8,  '2014-12-31', 4),
    ( 2, 11, '2015-01-30', 3);

对于此记录(2,11,'2015-01-30',3);日期是1月份,而我当前的月份是3月,所以3月 - 2015年1月应为3。

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

尝试

DATEDIFF(MONTH, D, GETDATE())

“MONTH”参数要求数月,但您可能需要在结果中添加一个以获得您所追求的结果。