2009-10-20 70 views
8

我的內容表看起來像(contentID,標題,創建)。我需要獲取3周以前創建的所有內容。sql查詢獲取超過3周的內容

Sql服務器數據庫,創建日期時間類型。

+0

格式是什麼'created'嗎? – 2009-10-20 00:38:12

+0

如果您提到數據庫,它會有所幫助。我不確定是否有這樣做的ANSI方法。 – Petros 2009-10-20 00:38:36

+0

創建的是datetime類型,sql server db。 – mrblah 2009-10-20 00:40:40

回答

33

如何:

select contentID, title, created 
from content 
where created < dateadd(week,-3,getdate()); 

這種堅持更接近問題。 21天很好,顯然意味着相同,但是我發現使用問題中使用的術語是很好的。

例如...一段時間後,我被要求調查一個站點的50位訪問者中平均有1位訪問者。我把這個比例描述爲0.02,而客戶並不高興。我向客戶指出他們是一樣的,但我學到了我的教訓,現在如果我改變了描述某種事物的方式,我確信我會對此發表評論,並且最好不要在第一次改變它地點。如果客戶想要3周,那麼做3周,而不是21天。

+0

+1良好的說法 – 2009-10-20 01:13:35

+0

+1,是的,好點 – 2009-10-20 01:16:12

+0

+1當他們想改變它到4周,他們不想做數學(我想這就是爲什麼我們有計算機和程序員)。 – JeffO 2009-10-20 01:25:27

3

在MS SQL 2000/2005,你可以做到這一點

Select 
    contactID, 
    title, 
    created 
from 
    content 
where 
    created < getdate()-21 
+0

你應該儘量遠離隱含的「dateadd(day)」數學。爲什麼? SQL Server 2008中新的DATE數據類型不會像+或 - 操作符(將出現類型衝突錯誤)。我使用了GETDATE()+ - INT很長一段時間,並且正在努力打破自己的習慣。 – 2009-10-20 01:41:13

0

試試這個:

select contentID, title, created from content 
where created < dateadd(day,-21,getdate()) 
+0

如何在這裏使用此方法來解決我的問題:http://stackoverflow.com/questions/26021347/how-to-get-two-week-prior-data-from-a-table – SearchForKnowledge 2014-09-24 17:55:32