Mir's 운영환경
본체 DeskTop
O S Windows7 Ultimate K (Service Pack 1)
APP Microsoft SQL Server Management Studio  2012
MS-SQL Micorsoft SQL Server 2008 R2 (10.50.1765.0)

MS-SQL 날짜, 시간차이 구하기 (DATEDIFF)


MS-SQL에서 두개의 날짜사이의 차이값을 구해보자.

DATEDIFF() 함수는 두개의 날짜값의 차이를 int로 반환하는 Mssql 내장함수이다.

단순히 날짜의 차이가 아닌 두 날짜값의 년도 차이나 시간 차이 혹은 몇주가 차이나는지도 확인할수 있다.


[DATEDIFF() 구문]

SELECT DATEDIFF('구분자','Start_Date','End_Date')

DATEDIFF()는 총 3개의 인수가 있는데 Start_Date와 End_Date는 차이를 구할 두개의 날짜값을 넣는곳이고

'구분자'는 어떤차이를 구할지 정해주는 부분이다.

예를 들어 두 날짜사이의 날짜 차이를 구하고 싶으면 'day' 혹은 'dd'등을 넣어주면 된다.

예를 들어 2018년의 일수를 구하고 싶다면


예제) 2018년의 날짜구하기

SELECT DATEDIFF(dd,'2018-01-01','2018-12-31') + 1 
결과 : 365

위와같이 구분값을 dd로 넣어주면 된다.

※자주하는 실수인데 한달 일수를 구하는데 31일 - 1일을 하면 30일이 된다.



구분자의 종류는 아래와 같다.

구분자 약어
년도 year yy,yyyy
분기 quarter qq,q
month mm,m
day dd,d
week wk
시간 hour m
minute mi,n
second ss,s
밀리초 millisecond ms
마이크로초 microsecond mcs
나노초 nanosecond ns

※Int형으로 반환하기 때문에 Int 범위를 넘어서는 차이는 구하지 못한다.

예를들어 밀리초의 경우 최대 차이는 24일 정도 초의 경우는 68년 정도이다.




보고 있는 글과 같이 보면 좋은 글들..


+ Recent posts