DimDate не будет загружаться при изменении диапазона дат на 01-01-0001 - PullRequest
0 голосов
/ 06 июля 2018

Я решил предыдущую проблему, спасибо. Тем не менее, у меня все еще есть проблема с ниже (часть предыдущего). Как я могу преобразовать результат в тип данных DATE, так как «0001-01-01» не поддерживается с DATETIME? Я пробовал DATETIME2, но не работает, и StartDate должен быть '0001-01-01'. Любая помощь высоко ценится.

DECLARE @CurrentDate DATE = '0001-01-01'

ВЫБРАТЬ DATEADD (QQ, DATEDIFF (QQ, 0, @CurrentDate), 0) AS FirstDayOfQuarter, DATEADD (QQ, DATEDIFF (QQ, -1, @CurrentDate), -1) AS LastDayOfQuarter, КОНВЕРТ (VARCHAR (10), DATEADD (НЕДЕЛЯ, DATEDIFF (НЕДЕЛЯ, 0, DATEADD (ДЕНЬ), (6- DATEPART (DAY, @CurrentDate)), @CurrentDate)), 0), 120) AS FirstMondayOftheMonth


Сообщение об ошибке:

Преобразование типа данных даты в тип данных datetime привело к значению, выходящему за пределы допустимого диапазона.

1 Ответ

0 голосов
/ 06 июля 2018

Диапазон типов данных Datetime с 1 января 1753 года по 31 декабря 9999 года.

Ошибка здесь означает, что вы превышаете нижнюю границу или нижнюю границу.

Если вам нужно сохранить это значение от 0001, используйте вместо этого Varchar.

Во многих проектах реального времени, которые я видел, обычно это начинается с 1900-01-01, когда люди принимают это как минимальную дату по умолчанию

...