星期一, 8月 06, 2007

由SQL SERVER取資料時,去除某一日期欄位的時間

在處理部份報表時,常會希望把DateTime型態的時間去除,可用於下條件或群組,因為此一欄位可能要使用Sql語法過濾,所以最佳的情況是在語法端就處理掉

依照微軟知識庫的建議,在下sql語法時使用Convert語法,如 CONVERT(char(10), datetimefield, 111) ,但這樣子的做法很不好,因為變成了字串型來處理

較好的處理方式應是保留DateTime格式,此時可以考慮如下的語法 DATEADD(dd, 0, DATEDIFF(dd, 0, datetimefield))

那程式中即可輕易的應用此一欄位
...WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, datetimefield)) = @PARAM ...