[SQL] Datediff 使用方法與範例

今天第一次接觸到Datediff 以前都是把資料拉回來

用DateTime 在程式做處理,實在沒用過在SQL 用Datediff 函式處理

這邊簡單的介紹一下Datediff 使用方式

一樣不囉嗦,直接看Code囉

 

DATEDIFF ( datepart , startdate , enddate )

datepart : 型式

startdate:起始日期 //被減的

enddate:結束日期

 

今天我有一個 員工表 我先select出員編為1的員工生日

select EmployeeID,BirthDate

from HR.Employees

where EmployeeID=1

 

 

我先用1959年以年去作範例給大家看

 

select EmployeeID,Datediff(YYYY,BirthDate,'1959-12-08 00:00:00.000')

from HR.Employees

where EmployeeID=1

 

 

可以看到它變成1了

帶這邊其實是只拿年去減

我們再以下方程式作為例子

SELECT DATEDIFF(YYYY, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');

你覺得這減下來會是甚麼?

 

 

沒錯實際上是差一天,但其實你如果是用年就會是以年去減喔。

這邊如果是要做那種算年紀,用GetDate() //順帶一提這是微軟提供的 可以得到現在時間的函式

去減生日資料的,如果是要算出虛歲實歲,就要想一想不能直接減喔

------------------------------------------

在這提供datepart 的所有格式

 

datepart

縮寫

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns