2014-04-11 105 views
0

在我的大程序的結尾,我以前做過,所以我可以寫下例子:「2」獲取2月份的銷售信息。但是現在我想改變這個,所以我可以寫出具體的日期,因爲我們想要獲取更多的數據。我怎樣才能改變這個Dateadd選擇日期

  1. 例如在什麼我想寫:2014年1月29日 - 2014年2月28日

代碼:

WHERE isa.sales_date >= Dateadd(mm, (@year - 1900) * 12 + (@month - 1), 
         0) 
     AND isa.sales_date < Dateadd(mm, (@year - 1900) * 12 + @month, 0) 
+0

這個問題幾乎解決了! :) – Lebowski

回答

1

嘗試: 有兩個參數:

@startDate varchar(10) --2014-01-01 
@endDate varchar(10) --2014-01-29 

並修改代碼如:

WHERE isa.sales_date >= convert(datetime, @startDate, 120) 
    AND isa.sales_date < DATEADD(DAY, 1, (convert(datetime, @endDate, 120)) 

DATEADD部分將包括直到最後一天結束時的所有銷售。

+0

是的,這是我正在尋找偉大的先生!但是當我運行它時,我似乎無法獲得任何數據,我需要在哪種格式中編寫日期?我也遇到這個錯誤:Procedure execution failed 22007 - [SQL Server]將varchar數據類型轉換爲日期時間數據類型導致超出範圍的值。 – Lebowski

+0

您傳遞給startDate和endDate的確切輸入是什麼?我假設'@startDate = '29 .01.2014''和'@endDate = '28 .02.2014''? – Knightwisp

+0

- 2014-01-01和2014-01-29測試 – Lebowski