Я использую DATEDIFF функцию фильтрации записей добавлены только на этой неделе:Можно ли установить начало недели для функции DATEDIFF T-SQL?
DATEDIFF(week, DateCreated, GETDATE()) = 0
, и я заметил, что это предполагается, что неделя начинается в воскресенье. Но в моем случае я предпочел бы установить начало недели в понедельник. Возможно ли это как-то в T-SQL?
Спасибо!
Update:
Ниже приведен пример, показывающий, что DATEDIFF не проверяет @@DATEFIRST переменную, поэтому мне нужно другое решение.
SET DATEFIRST 1;
SELECT
DateCreated,
DATEDIFF(week, DateCreated, CAST('20090725' AS DATETIME)) AS D25,
DATEDIFF(week, DateCreated, CAST('20090726' AS DATETIME)) AS D26
FROM
(
SELECT CAST('20090724' AS DATETIME) AS DateCreated
UNION
SELECT CAST('20090725' AS DATETIME) AS DateCreated
) AS T
Выход:
DateCreated D25 D26
----------------------- ----------- -----------
2009-07-24 00:00:00.000 0 1
2009-07-25 00:00:00.000 0 1
(2 row(s) affected)
26 Июль 2009 в воскресенье, и я хочу DATEDIFF возвращает 0 в третьей колонке тоже.
Извините, что не проверял, что DateFirst был проверен датиффом, кто бы догадался, я обновил свой ответ, чтобы принять это во внимание. – Tetraneutron