SQL - выберите номер текущей недели и три недели позади - PullRequest
0 голосов
/ 25 ноября 2018

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

Это мой текущий код.Я могу заставить его работать с фиксированным номером (42 в этом примере), но это не то, что я хочу.

enter image description here

И вот что должно быть на выходе:

enter image description here

1 Ответ

0 голосов
/ 25 ноября 2018

Пожалуйста, избегайте изображений кода ... .

Тем не менее, если вы используете SQL Server, я считаю, что функция, которую вы ищете - DATEPART.Посмотрите, делает ли это то, что вам нужно:

SELECT *
FROM tblData
WHERE fldWeekNum BETWEEN DATEPART(WEEK, GETDATE())-3 AND DATEPART(WEEK, GETDATE())

РЕДАКТИРОВАТЬ:

Исходя из комментариев ниже, давайте попробуем вычесть 3 недели из текущей даты, затем получимDATEPART для WEEK с этой даты.Это зависит от того, как рассчитывается fldWeekNum, поэтому на его основе может потребоваться дополнительная настройка.

SELECT *
FROM tblData
WHERE fldWeekNum 
  BETWEEN 
    DATEPART(WEEK,DATEADD(WEEK, -3, GETDATE())) 
    AND 
    DATEPART(WEEK, GETDATE());
...