我需要在T-SQL中找出从今天开始1年零1天之前的日期。我已经完成了以下操作,但仍然出现错误。
select DATEADD(YEAR, - 1, CAST(CAST(GETDATE() AS DATE) AS DATETIME)),
DATEADD(DAY, - 1, CAST(CAST(GETDATE() AS DATE) AS DATETIME)))
请有人帮忙。谢谢。
答案 0 :(得分:2)
您也可以这样:
select dateadd(year,-1,dateadd(dd,-1,getdate()))
答案 1 :(得分:1)
尝试这样:
SELECT DATEADD(DAY, -366, GETDATE())
编辑:
根据注释更新的代码(已使用this answer)
CASE WHEN ISDATE(CAST(@YEAR AS char(4)) + '0229') = 1
THEN
SELECT DATEADD(DAY, -367, GETDATE())
ELSE
SELECT DATEADD(DAY, -366, GETDATE())
END
答案 2 :(得分:1)
如果您想要日期,请转换为日期:
select convert(date, dateadd(year, -1, getdate() - 1))