SQL 2012 - Запрос на возврат номера месяца - PullRequest
0 голосов
/ 16 июня 2020

Мне нужно вернуть номер месяца для заданной даты. Для текущего месяца номер месяца будет 0. Для следующего месяца MonthNo будет 1. Предыдущий месяц будет -1, 2 месяца go будет -2. Итак, предполагая, что сегодня 16 июня 2020 года, см. пример данных ниже:

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

Мне нужно будет вернуть следующее:

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

Есть ли способ вернуть эту информацию?

1 Ответ

4 голосов
/ 16 июня 2020

Выглядит как обычный DATEDIFF , у вас должно работать:

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

Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...