iT邦幫忙

DAY 5
2

MS SQL Server新特性探險:探險代碼 Denali系列 第 5

[Denali 新特性探險5]Date and time functions

這篇為大家介紹Date and time functions:
DATEFROMPARTS 、 DATETIME2FROMPARTS 、 DATETIMEFROMPARTS 、DATETIMEOFFSETFROMPARTS 、EOMONTH 、SMALLDATETIMEFROMPARTS 、
TIMEFROMPARTS
Denali 這次新增了數個日期和時間型別新函數,
尤其是Eomonth function 更是讓我開心不已,下面我將為大家介紹並示範。

DATEFROMPARTS:輸入年、月、日數值,將回傳Date型別資料。

select datefromparts(2011,10,10) as 'Result1',
datefromparts(10,10,1) as 'Result2',
datefromparts(null,null,10) as 'Result3',
datefromparts(9,99,1) as 'Result4'--月份超出範圍


月份超出範圍錯誤。

DATETIME2FROMPARTS: 輸入年、月、日、時、分、秒、總長度字元、
小數位數數值,將回傳datetime2型別資料。

Select datetime2fromparts(2011, 09, 11,03,12,19,17,4) as 'Result1', --0017 4位小數A
datetime2fromparts(2011, 09, 11,03,12,19,9874,5) as 'Result2', --09874 5位小數A
datetime2fromparts(2011, 09, 11,03,12,19,9991,3) as 'Result3' --錯誤。 小數位數要大於等於精準度位數

精準度位數要大於等於小數位數,不然會拋出部分引數有無效的值錯誤(如下圖)。

EOMONTH:取得月份最後一天。
以往你要取得某個月份最後一天,大概都會利用 dateadd 和 day
兩個function 去湊出正確結果,
現在,Eomonth function 免去你拼拼湊湊的煩惱。

declare @mydate datetime
set @mydate = '2011-10-11'
--using eomonth function
select eomonth (@mydate)   
--using dateadd and day function 
select dateadd(mm,1,@mydate - day(@mydate)+1)-1

其他還有 DATETIMEFROMPARTS 、DATETIMEOFFSETFROMPARTS、SMALLDATETIMEFROMPARTS、TIMEFROMPARTS ,
均和前面所介紹過的DATEFROMPARTS 大同小異,
大家可以自行感受一下這些Date and Time Functions 所帶來的便利和靈活性。

MS SQL Server新特性探險:探險代碼 Denali 全系列文章


上一篇
[Denali 新特性探險4]Conversion functions
下一篇
[Denali 新特性探險6]Analytic Functions
系列文
MS SQL Server新特性探險:探險代碼 Denali30

尚未有邦友留言

立即登入留言