2016-04-18 90 views
-1

我正在嘗試創建一個查詢,該查詢將顯示出售時間不足6周的屬性。在清單表中,有BeginListDate和EndList Date。撰寫where where子句查詢

So far my WHERE statement looks like 
WHERE SaleStatus.Salestatus = 'Sold' AND DATEDIFF(YEAR,BeginListDate, EndListDate) >42 

但該查詢不正確。我只是困惑於如何寫一個where語句,它只考慮那些在市場上不到6周的。

+0

這是一個開始的好地方:http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ – Marusyk

+3

https:// msdn.microsoft.com/en-us/library/ms189794.aspx查看datepart參數。特別是'天'。 – squillman

+4

Datediff(day,BeginListDate,EndListDate)<42你的意思是? – JamieD77

回答

0

只是爲了闡述@ JamieD77是非常正確的註釋......

您的條件:

DATEDIFF(YEAR,BeginListDate, EndListDate) >42 

說「歲月的BeginListDateEndListDate之間的數量比42更大」。這是一個很長的清單時期。你說你正在尋找的名單週期爲不少於42天,所以@ JamieD77的建議,:

Datediff(day,BeginListDate, EndListDate) < 42 

是要走正道。這說「beginlistdateendlistdate之間的天數小於42」。

這裏的區別是DatePart @squillman建議從Year改爲Day以及不等式本身。你想要Less Than,<

0

提示但依賴於您如何在報告或項目中更喜歡。

這個例子中,如果兩個開始日期和endate處於相同的日曆周,周返回值將是0。

選擇DATEDIFF(周,GETDATE(),GETDATE()+ 7)

它已經考慮週日開始爲基於系統的星期日。