当日期范围更改为从01-01-0001

时间:2018-07-06 03:50:54

标签: sql sql-server sql-server-2017

我已经解决了上一个问题,谢谢。但是,我仍然对以下内容有疑问(之前的一部分)。我如何将结果转换为DATE数据类型,因为DATETIME不支持'0001-01-01'?我已经尝试过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,         CONVERT(VARCHAR(10),DATEADD(WEEK,DATEDIFF(WEEK,0,DATEADD(DAY,(6-         DATEPART(DAY,@CurrentDate)),@CurrentDate)),0),120)AS         FirstMondayOftheMonth


错误消息:

  

将日期数据类型转换为日期时间数据类型会导致超出范围的值。

1 个答案:

答案 0 :(得分:0)

日期时间范围数据类型是从1753年1月1日到9999年12月31日。

此处的错误表明您超出了下限或下限。

如果必须存储从0001开始的值,请改用Varchar。

在我看到的许多实时项目中,通常从1900-01-01开始,人们将其作为默认的最小日期