我正在使用SQL Server 2014.最后一行导致出现溢出错误。
为什么呢?
DECLARE @CurrentDateTime datetime
DECLARE @PreviousYearDateTime datetime
DECLARE @ModifiedStartDateTime datetime
DECLARE @YearsYear int = 2015
SET @CurrentDateTime = '2016-08-29 19:13:30.840'
SET @PreviousYearDateTime = CONVERT(datetime, DATEADD(YEAR, -1, @CurrentDateTime))
-- For the "startdate" - just use the previous "startdate".
SET @ModifiedStartDateTime = @PreviousYearDateTime
-- Set the 'year' to the year value.
SET @ModifiedStartDateTime = DATEADD(YEAR, @YearsYear, DATEADD(YEAR, -DATEPART(YEAR, @ModifiedStartDateTime), @ModifiedStartDateTime))
答案 0 :(得分:0)
您可以像这样更换年份:
SET @ModifiedStartDateTime = REPLACE(@ModifiedStartDateTime,DATEPART(YEAR,@ModifiedStartDateTime),@YearsYear)
但是,既然你设置了2015年的@ModifiedStartDateTime = @PreviousYearDateTime
......并且你将这一年改为2015年......你就没有做任何事情。尝试使用与2015年不同的内容@YearsYear
答案 1 :(得分:-1)
SQL Datetime
日期范围1753年1月1日至9999年12月31日
当您减去2015年时,您将在第0年
范围:0001-01-01至9999-12-31。
公元1月1日至9月9日12月31日