2010-07-21

SQL小數計算

在SQL Server中正整數除於正整數得到的結果也是正整數,
但是有時候會有需要計算到小數後幾位時可使用CAST函數進行型態轉換!
select cast(10 as decimal(10,5))/cast(3 as decimal(10,5))
---------------------------------------
3.3333333333333333
select ROUND(cast(10 as decimal(10,5))/cast(3 as decimal(10,5)),5)
---------------------------------------
3.3333300000000000
select Convert(decimal(10,5),ROUND(cast(10 as decimal(10,5))/cast(3 as decimal(10,5)),5))
---------------------------------------
3.33333
參考自:Microsoft TechNet-CAST 和 CONVERT

2010-07-20

設定SQL每週起始日

因為工作日統計的需求,有些公司會將星期日設為每週的第一天,
但有些公司是將星期一設為每週的第一天,而在SQL Server 2008中,
系統欲設為星期日為每週的第一天(可使用@@DATEFIRST查詢),
若因為統計需求配合其他日期函數,在撈取時可以使用SET DATEFIRST函數,
設定每週起始日,如SET DATEFIRST 1,表示將星期一設為每週的第一天,
此設定僅在該是連線建立上有效,不影響系統上的設定!
SET DATEFIRST 1
select @@DATEFIRST
-----------------------------
1
參考自:Microsoft TechNet-SET DATEFIRST