Получите предыдущий год до мая - PullRequest
1 голос
/ 13 мая 2019

Я хочу все значения с прошлого года до 2018-05-13.Я хочу выполнять запрос каждый день, поэтому он должен знать, что завтра он должен получить все значения с прошлого года по 2018-05-14 без указания даты.

Я использую этот код, чтобы получить все значения за этот год ихотел бы иметь что-то похожее для извлечения значений из прошлого года:

YEAR(Created) = YEAR(GETDATE())

Ответы [ 3 ]

2 голосов
/ 13 мая 2019

Вы можете использовать DATEADD и DATEDIFF для манипулирования датой на основе GETDATE(), чтобы добраться туда, куда вы хотите.Вы можете пойти еще дальше и набрать DATEADD(ms,-3,DATEADD(DAY,1,DATEADD(DAY, DATEDIFF(DAY,0,GETDATE()), 0))), чтобы узнать дату окончания года назад.

SELECT * FROM Table WHERE Date 
BETWEEN DATEADD(YEAR, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)) 
AND DATEADD(YEAR, -1, GETDATE())
1 голос
/ 13 мая 2019

Предполагается, что SQL Server:

select *
from MyTable t1
where SomeDateColumn between dateadd(year,-1,DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)) 
    and getdate()

Это получает весь прошлый год, и этот год на сегодняшний день

Если вы просто хотите с сегодняшнего дня с прошлого года по сегодняшний день:

select *
from MyTable t1
where SomeDateColumn between dateadd(year,-1,GETDATE()) 
    and getdate()
0 голосов
/ 13 мая 2019

Я думаю, что вы хотите:

where datecol >= dateadd(year, -1, convert(date, getdate())) and
      datecol < convert(date, getdate())

Получает последний полный год для столбцов даты и даты / времени. Если вы хотите включить сегодня, то:

where datecol > dateadd(year, -1, convert(date, getdate())) and
      datecol <= convert(date, getdate())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...