Получение данных за шесть месяцев до текущей даты не работает - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь получить данные, отправленные через 6 месяцев с текущей даты. Каждый день этот отчет запускается, и я хочу, чтобы он выбирал данные автоматически. Я ввел этот код, и ничего не подходит. Там нет ошибки, это почти как если бы ничего не было введено в дату.

L.Open_Date = DATEADD(month, -6, GETDATE())

Однако, если я подтвердил, что были введены данные в день 6 месяцев go. Я изменил код на

L.Open_Date >= DATEADD(month, -6, GETDATE())

, и этот код работает. Он возвращает все данные, отправленные за 6 месяцев до текущей даты.

Есть ли способ получить данные за 6 месяцев go только для проверки?

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Предположительно, вы хотите:

L.Open_Date = DATEADD(month, -6, CAST(GETDATE() AS DATE))

Это дает вам 6 месяцев назад без компонента времени (который в противном случае возвращает getdate()). Это будет работать, если Open_Date само по себе date. Если у него есть компонент времени, который вы хотите игнорировать, то это будет:

CAST(L.Open_Date AS DATE) = DATEADD(month, -6, CAST(GETDATE() AS DATE))

Или более длинный, но SARGable:

L.Open_Date >= DATEADD(month, -6, CAST(GETDATE() AS DATE))
AND L.OPen_DAte >= DATEADD(day, 1, DATEADD(month, -6, CAST(GETDATE() AS DATE)))
0 голосов
/ 05 марта 2020

Вам нужно навести текущую дату

CAST(L.Open_Date AS DATE) = DATEADD(month, -6, CAST(GETDATE() AS DATE))

См. это

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