需要找出今天的1年和1年之前的日期

时间:2018-06-29 11:41:42

标签: sql sql-server

我需要在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)))

请有人帮忙。谢谢。

3 个答案:

答案 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))