sql последние 60 дней с прошлого года - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь сделать запрос, чтобы получить последние 60 дней с прошлого года.

У меня есть текущий период

DATE >= DATEADD(DAY, -60, current_timestamp) AND PEDDTEMIS < 'TODAY'

Что я пытаюсь получить

DATE >= DATEADD(DAY, -60, DATEDIFF(YEAR,current_timestamp,-1) AND DATE < DATEDIFF(YEAR,'TODAY',-1)

Даты, которые я пытаюсь получить:

текущий: 14.06.2009 - 15.04.2009 в прошлом году: 14/06/2018 - 15/15/2018

Ценю любую помощь

Ответы [ 4 ]

1 голос
/ 14 июня 2019

Я думаю вы пытаетесь получить "60 дней, предшествовавших одному году назад сегодня" (хотя заголовок вашего вопроса предполагает нечто иное).

Год назад сегодня долженбыть: DATEADD(-1 YEAR TO CURRENT_DATE)

За шестьдесят дней до этого должно быть: DATEADD(-60 DAY TO DATEADD(-1 YEAR TO CURRENT_DATE))

Итак, вы ищете записи МЕЖДУ этими двумя значениями даты.

0 голосов
/ 14 июня 2019

Похоже, вы с Oracle. DATEDIFF возвращает разницу между двумя датами в ГОДАХ / ДНЯХ и т. Д. Вам нужно только DATEADD, чтобы вычесть год и вычесть 60 дней:

DATE >= DATEADD(DAY, -60, DATEADD(YEAR,current_timestamp,-1) AND DATE < DATEADD(YEAR,current_timestamp,-1)
0 голосов
/ 14 июня 2019

Вы можете попробовать

SELECT DATEADD(DAY,-60, DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)))
0 голосов
/ 14 июня 2019

Ну, это приходит на ум:

where date >= '2018-11-02'
...