2007-12-27

mssql只取得時間欄位中的日期資料(Get Date from DateTime)

DateTime的欄位內容為 2007/12/27 18:26:29.597
現在想要只取得2007/12/27而且要保持為日期型態.
也就是要取得2007/12/27 00:00:00的結果
原本是想用format的方式來取得字串結果,然後再轉型態.

不過這樣的語法似乎太長了點.
所以改成下面的方式

select dateadd(dd,0,datediff(dd,0,getdate()))

先使用datediff取得該日期的數值,
再使用dateadd去取得此數值所代表的日期.

雖然使用select cast(getdate() as int)雖然也是可以將日期轉為數值,
但是只要超過12:00就會取得隔天的日期(應該是4捨5入的原因)

select cast('2007/12/27 12:00:00' as datetime)
-- 2007-12-27 12:00:00 000
select cast(cast('2007/12/27 12:00:00' as datetime) as int)
-- 39442
select cast('2007/12/27 11:59:59' as datetime)
-- 2007-12-27 11:59:59
select cast(cast('2007/12/27 12:59:59' as datetime) as int)
-- 39941

所以還是使用datediff的方式來取得日期的數值比較好.

張貼留言

一頁式詐騙網站進階了嗎?

之前facebook常常出現一頁式購物詐騙. 難道現在已經進級變成網站式的了嗎? 無意見看到"Ray Ban網站"在大特價. 連到網站上看,還真的每款眼鏡都下殺到一折以下, 買三支還免運. 而且網站的功能似乎還很完整. 這麼好康的事,我當然不能放過 要好好研究...