Рейтинг:
0
Maciej Los
Альтернативно, вы можете использовать МЕЖДУ.. И...[^]
Использование:
DECLARE @md DATE = CONVERT(DATE, GETDATE()) -- initial value
SELECT @md = MAX(orderdate) FROM YourTable --get max of orderdate
SELECT ...
FROM YourTable
WHERE orderdate BETWEEN DATEADD(DD, -10, @md) AND @md
[EDIT]ответ был улучшен в соответствии с предложением Ричарда.[/РЕДАКТИРОВАТЬ]
Tomiko
Спасибо ребята,
Но я хочу получить максимальную дату из своего стола и вернуться с этого максимального дня(последнего дня в моем столе) на 10 дней назад.
Спасибо
Maciej Los
См. обновленный ответ.
Richard Deeming
Почти идеальный. :)
Вы можете удалить CONVERT
в столбце дата, так как (например) 2020-03-22T15:00:00
будет между ними 2020-03-22T00:00:00
и 2020-04-01T00:00:00
даже если вы не сокращаете время.
Тогда ваш запрос будет правильно SARGable. :)
Maciej Los
- Спасибо, Ричард.
- Да, ты прав. Как всегда.
Рейтинг:
0
Vijay Ahlawat
Я думаю, что вы хотите распечатать подробную информацию о заказе на 10 дней назад с максимальной даты заказа.
Вы можете сделать это с помощью приведенного ниже запроса :-
SELECT * FROM TABLE1
WHERE CAST(ORDERDATE AS DATE)=(SELECT CAST(MAX(ORDERDATE)-10 AS DATE) FROM TABLE1)
Maciej Los
Это неправильно, потому что он будет извлекать только те данные, где orderdate равен max date. ОП хочет, чтобы последние 10 дней отсчитывались от максимальной даты. Пожалуйста, улучшите свой ответ, чтобы избежать отрицательного голосования.
Vijay Ahlawat
вот чего хочет пользователь
Tomiko
Спасибо! Это именно то, что мне было нужно.