SQL Server取得當月第一天及最後一天
最近在寫報表時,需要讓 Reporting Service 可以按月定時發送報表給使用者,但,問題來了,要如何自動填入資料區間,讓SQL可以抓到正確的資料呢?
一開始,我用使用下列條件式進行:
...
AND YEAR(ApplyTime) = YEAR(DATEADD(MONTH, -1, GETDATE()))
AND MONTH(ApplyTime) = MONTH(DATEADD(MONTH, -1, GETDATE()))
...
不過,遇到資料量大時,資料要透過運算後才能獲得正確的結果,這樣的效果並不是很好....
後來,利用變數宣告的方式,似乎更容易了(至少我是這麼認為啦 XD)
DECLARE @StartTime datetime = DATEADD(day,-DAY(GETDATE())+1, CONVERT(datetime,CONVERT(date, GETDATE())))
DECLARE @EndTime datetime = DATEADD(ss, -1, DATEADD(m,1,@StartTime))
...
AND ApplyTime between @StartTime and @EndTime
...
不過,一般來說,都是取回前一個月的資料居多啦,因此,上面的@StartTime只要做些修改即可:
DECLARE @StartTime datetime = DATEADD(day,-DAY(GETDATE())+1, CONVERT(datetime, CONVERT(date, DATEADD(MM, -1,GETDATE()))))
2010-01-19 13:00:28
| 簡單的對DataTable做Distinct | 2009-09-21 10:18 |
| 使用 svcutil 編譯 WCF 錯誤解法 | 2009-07-09 19:59 |
| PHP加載MSSQL函式庫 | 2008-10-20 20:54 |
| 資料庫抓取固定筆數資料 | 2008-09-19 10:27 |
| PHP與ASP共存 | 2008-07-05 22:03 |
| CheckedBoxList的設定與取得勾選值 | 2008-06-21 08:21 |
| 在PHP中保護檔案下載位址 | 2008-04-04 17:49 |
| MSSQL資料轉移至MySQL | 2008-04-04 16:33 |
| 改變.NET Windows Forms的TabControl頁籤顏色 | 2008-04-02 16:08 |
| DataGridView排序後,如何抓取綁定資料的正確索引值 | 2008-03-21 09:37 |
| 郵件回傳瀏覽記錄訊息 | 2008-02-13 23:21 |
| PHP連結ASP.NET的Web Service | 2007-12-25 23:15 |
| HTTP服務在SELinux上的設定 | 2007-11-06 23:31 |
| MindMeister - 心智圖線上編輯器 | 2007-04-30 00:41 |


~