Обрезка в SQL Server
У меня есть таблица, в которой более 90 миллионов строк, она содержит данные более 3 лет. Я хочу сохранить все записи, добавленные в понедельник (или в любой конкретный день недели), и удалить оставшиеся записи для данных, добавленных годом ранее.
Кто-нибудь может мне с этим помочь?
Сложность, с которой я сталкиваюсь, заключается в сортировке данных, которые были добавлены в понедельник (или в любой конкретный день недели).
2 ответа
Вы можете использовать datepart
DATEPART(dw, '2007-04-21 ') = 2 // day of the week.
DATENAME(weekday, '2007-04-21 ') = 'Monday'
Больше можно найти https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-2017
Как сказал Тим, вы можете попробовать
datepart(weekday, your_date) = 2
проверить, является ли дата понедельником (обратите внимание, что 1 - воскресенье). Или даже вы можете попробовать
datename(weekday, your_date) = 'Monday'
установить название дня недели в явном виде