2014-07-11 25 views
0

我試圖執行下面的語句以便只顯示過去29天列出的屬性,但是當我執行命令時就好像忽略了一樣2012年的房產正在顯示。我過去看了些什麼?WHERE子句中的SQL DATEDIFF謂詞不會像預期的那樣限制結果

編輯:字段類型是smalldatetime的

where DATEDIFF(DAY, ListedDate, GETDATE()) < 29 
+1

什麼是你ListedDate字段的數據類型,註釋的細節? –

+0

smalldatetime是實體類型 – DeveloperDevine

+0

這裏有兩個問題。我認爲ListedDate早於當前日期?你的功能是倒退的。更重要的是,你的謂詞是不可變的。你在一個函數中包裝你的列。我們可以把它轉換成你的謂詞是可控的。 –

回答

1

這只是一個工作,在評論上提到了答案。我決定將它作爲原始海報之後的答案發布。這是爲了讓其他用戶更容易找到。

where ListedDate > DATEADD(day, -29, getdate()) 

有關爲什麼它的答案,請閱讀下面原來的問題