Мне нужен запрос, который выбирает людей с датой рождения от 1 января два года go до вчерашней даты - PullRequest
0 голосов
/ 05 марта 2020

Мне нужен запрос, который перетянет всех детей с датой рождения от двух лет go до вчерашнего дня Таким образом, используя сегодня, например, как запрос, мы получим всех с BirthDT с 01.01.2008 по 3/4/2020. В оставшуюся часть 2020 года начальная дата всегда будет 01.01.2008, а конечная дата будет зависеть от даты выполнения запроса. В следующем году он должен будет использовать 01.01.2009 в качестве даты начала.

Что-нибудь подобное, конечно, просто дайте мне скользящее двухлетнее окно. WHERE BirthDT > DATEADD(yy, -2, CONVERT(datetime, CONVERT(varchar, GETDATE(), 101)))

1 Ответ

2 голосов
/ 05 марта 2020

Вы можете использовать функцию DATEFROMPARTS для создания 1.1. любого года и YEAR () , чтобы получить текущий год.

Для конечной даты, чтобы избежать сегодняшних рождений, просто приведите GETDATE () к DATE

WHERE BirthDT >= DATEFROMPARTS(YEAR(GETDATE())-2,1,1)
AND BirthDT < CAST(GETDATE() AS DATE)

Для полей даты и времени всегда лучше использовать> = в левой части, которая будет содержать 0: 00 в начальную дату и <справа от следующего дня, чтобы получить полные данные за предыдущий день, если используется временная часть. </p>

В этом случае это будет 1.1.2018 0:00:00 и не включают 5.3.2020 0:00, но включают 4.3.2020 23: 59: 59

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