Ответ 1
Да, синтаксис верен, и все должно быть хорошо.
Вот Скрипт SQL Fiddle, который я создал для вашего конкретного случая
Как выбрать данные недели (точнее, последние данные за 7 дней) с текущей даты самым быстрым способом, так как у меня есть миллионы или строки в таблице. У меня есть метка времени created_date в таблице sql.
Я пробовал это
SELECT Created_Date
FROM Table_Name
WHERE Created_Date >= DATEADD(day,-7, GETDATE())
У меня есть два вопроса:
Да, синтаксис верен, и все должно быть хорошо.
Вот Скрипт SQL Fiddle, который я создал для вашего конкретного случая
2А. Поскольку последние семь дней имеют намного меньше строк, чем целая таблица, индекс может помочь
2B. Если вы заинтересованы только в Created_Date, вы можете попробовать использовать некоторую группу по и подсчитать, она должна помочь с размером набора результатов
для выбора записей за последние 7 дней
WHERE Created_Date >= DATEADD(day, -7, GETDATE())
чтобы выбрать записи для текущей недели
SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT * FROM
WHERE CreatedDate >= DATEADD(day, 1 - DATEPART(dw, GETDATE()), CONVERT(DATE, GETDATE()))
AND CreatedDate < DATEADD(day, 8 - DATEPART(dw, GETDATE()), CONVERT(DATE, GETDATE()))
если вы хотите выбрать записи за последнюю неделю вместо последних 7 дней
SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT * FROM
WHERE CreatedDate >= DATEADD(day, -(DATEPART(dw, GETDATE()) + 6), CONVERT(DATE, GETDATE()))
AND CreatedDate < DATEADD(day, 1 - DATEPART(dw, GETDATE()), CONVERT(DATE, GETDATE()))