我已经解决了上一个问题,谢谢。但是,我仍然对以下内容有疑问(之前的一部分)。我如何将结果转换为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
错误消息:
将日期数据类型转换为日期时间数据类型会导致超出范围的值。
答案 0 :(得分:0)
日期时间范围数据类型是从1753年1月1日到9999年12月31日。
此处的错误表明您超出了下限或下限。
如果必须存储从0001开始的值,请改用Varchar。
在我看到的许多实时项目中,通常从1900-01-01开始,人们将其作为默认的最小日期