SQL Select - 当前日期 - 7年

时间:2013-12-30 05:34:28

标签: sql

您好我想(当前的日期时间 - 年)。

以下是我的查询..

 print getdate()
 print (getdate()-(365.25*7))
 Result:
 Dec 30 2013 10:47AM
 Dec 30 2006  4:52PM

正在给出正确的结果。

但是当我尝试

 print getdate()
 print (getdate()-year(7))
 Result:
 Dec 30 2013 10:52AM
 Oct 17 2008 10:52AM

任何人都可以告诉它有什么问题吗?

4 个答案:

答案 0 :(得分:4)

而是使用DATEADD并将datepart设置为YEAR

  

返回具有指定数字间隔的指定日期(已签名)   整数)添加到该日期的指定日期部分。

这样的东西
SELECT GETDATE() Today, DATEADD(YEAR,-7,GETDATE()) Today7YearsAgo

SQL Fiddle DEMO

year(7)部分返回1900,这是1900-01-08 00:00:00.000CAST(7 AS DATETIME))的年份部分。然后getdate()-year(7)等同于getdate()-1900,这是一天的减法。

答案 1 :(得分:3)

试试这个

print getdate()
print DATEADD(Year, -7, GETDATE())

答案 2 :(得分:0)

尝试MSSQL DATEADD功能

select DATEADD(Year,-7,GETDATE());

答案 3 :(得分:0)

DATE ADD()返回指定的日期,并将指定的数字间隔(有符号整数)添加到该日期的指定日期部分。

print getdate()
print DATEADD(Year, -7, GETDATE())