DimDate не будет загружаться, если изменить диапазон дат, начиная с 01-01-0001

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

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

SELECT DATEADD (QQ, DATEDIFF (QQ, 0, @CurrentDate), 0) AS FirstDayOfQuarter, DATEADD (QQ, DATEDIDF (QQ, -1, @CurrentDate), -1) AS LastDayOfQuarter, CONVERT (VARCHAR (10), DATEADD ( WEEK, DATEDIFF (WEEK, 0, DATEADD (DAY, (6-DATEPART (DAY, @CurrentDate)), @CurrentDate)), 0), 120) AS FirstMondayOftheMonth


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

Преобразование типа данных даты в тип данных даты и времени приводило к значению вне диапазона.

sql,sql-server,sql-server-2017,

1

Ответов: 1


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

Преобразование типа данных даты в тип данных даты и времени приводило к значению вне диапазона.

11
0

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

В этой ошибке указано, что вы превышаете нижний предел или нижний предел.

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

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

SQL, SQL-сервер, SQL-сервер-2017,
Похожие вопросы