SQL - 年初至今

时间:2011-08-09 19:42:14

标签: sql

示例数据:

sDate         NAME   
2010-03-28    Andrew  
2011-05-10    Drew           
2010-04-11    Clary 
2009-12-26    Kriz

我想整理出来,以便输出只显示从01/01/11到今年的那些。是否有自动语法,以便我不会将我的sql语句更改为今天的日期,但它将始终显示今年的年份?

Example of my statement:
SELECT *
FROM 'mytable'
Where sDate BETWEEN '2011-01-01' AND '2011-08-09'

3 个答案:

答案 0 :(得分:4)

您应该可以使用GETDATE()功能,如下所示:

SELECT *
FROM 'mytable'
Where sDate BETWEEN '2011-01-01' AND GETDATE()

答案 1 :(得分:4)

不需要硬编码日期。 DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0)将为您提供当年的第一天。所以:

...WHERE sDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0) AND GETDATE()

答案 2 :(得分:2)

一个简单的

... WHERE sDate => '2011-01-01'

会这样做,假设您在该表中从未有过“未来”日期。