Я решил предыдущую проблему, спасибо. Однако у меня все еще есть проблема с нижеследующим (частью предыдущего). Как я могу преобразовать результат в тип данных DATE, поскольку «0001-01-01» не поддерживается с DATETIME? Я пробовал DATETIME2, но не работал, а StartDate должен быть «0001-01-01». Любая помощь очень приветствуется.
ОБЪЯВИТЬ @CurrentDate DATE = '0001-01-01'
ВЫБЕРИТЕ DATEADD (QQ, DATEDIFF (QQ, 0, @CurrentDate), 0) AS FirstDayOfQuarter, DATEADD (QQ, DATEDIFF (QQ, -1, @CurrentDate), -1) AS LastDayOfQuarter, CONVERT (VARCHAR (10), DATE WEEK, DATEDIFF (WEEK, 0, DATEADD (DAY, (6- DATEPART (DAY, @CurrentDate)), @CurrentDate)), 0), 120) AS FirstMondayOftheMonth
Сообщение об ошибке:
Преобразование типа данных даты в тип данных datetime привело к значению вне допустимого диапазона.
#DimDate
таблицы - person Ajay Gupta   schedule 06.07.2018SELECT
действительно работает (sqlfiddle.com/#!18/9eecb/23758 ). Предположительно, у вас естьdatetime
тип данных в вашей таблице. - person Gordon Linoff   schedule 06.07.2018datetime
на столбцы типаdatetime2
(или, возможно, что-то более подходящее). Хотя мне любопытно, что столбец типа datetime делает в измерении даты ... - person Clockwork-Muse   schedule 06.07.2018