2011-08-09 131 views
2

的樣本數據:SQL - 今年迄今爲止

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

我想將它整理出來,以便輸出將只顯示那些arefrom 11年1月1日至今年迄今。是否有一個自動語法,以便我不會將我的sql語句更改爲今天的日期,但它會始終顯示年份至今?

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

回答

2

在一個簡單的

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

會做,假設你永遠不會有 '未來' 的日期表。

+0

如果我有未來的日期,你應該使用什麼代碼? – Cha

+0

@cha:然後,rionmonster的答案就是要使用的答案。 –

+0

你的意思是這個代碼? DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)...當我使用這個,出現一個錯誤語句..它說不能將0轉換爲日期。你能幫我解決嗎? – Cha

4

您應該能夠使用GETDATE()功能,如下圖所示:

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

非常感謝您的幫助。我知道這是一個基本問題。謝謝回答! :-) – Cha

+0

沒問題 - 很高興幫助你。 –

4

不需要硬編碼日期。 DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0)會給你今年的第一天。所以:

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

當我使用這個時,出現錯誤語句..它說不能將0轉換爲日期。你能幫我解決嗎? – Cha