MS-SQL에서 두개의 날짜사이의 차이값을 구해보자.
DATEDIFF() 함수는 두날의 차이를 int로 반환하는 Mssql 내장함수이다.
단순히 차이나는 일수뿐만 아니라 년도 차이나 시간 차이 혹은 몇주차인지도 확인할수 있다.
SELECT DATEDIFF('구분자','Start_Date','End_Date')
DATEDIFF()는 총 3개의 인수가 있는데 Start_Date와 End_Date는 차이를 구할 두개의 날짜값을 넣는곳이고 '구분자'는 어떤차이를 구할지 정해주는 부분이다.
예를 들어 두 날짜사이의 일자 차이를 구하고 싶으면 'day' 혹은 'dd'등을 넣어주면 된다.
만약 2018년의 전체 일수를 구하는 쿼리문을 적는다면
SELECT DATEDIFF(dd,'2018-01-01','2018-12-31') + 1
위와같이 구분값을 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년 정도이다.
관련글
[MS-SQL] MS-SQL에서 오라클의 DUAL 사용하기 |
[MS-SQL] 현재 날짜, 시간 구하기 (GETDATE()) |
[MS-SQL] GETDATE() 간단히 날짜 더하기 빼기 |
날다의 운영환경 | |
---|---|
본체 | DeskTop |
O S | Windows7 Ultimate K |
Application | Microsoft SQL Server Management Studio 2012 |
MS-SQL | Micorsoft SQL Server 2008 R2 (10.50.1765.0) |
'DBMS > MS-SQL' 카테고리의 다른 글
[MS-SQL] [ALTER] 테이블에 컬럼 추가 하기 (0) | 2019.04.09 |
---|---|
[MS-SQL] 테이블 및 컬럼 Description 및 정보 가져오기 (0) | 2019.04.05 |
[MS-SQL] 현재 날짜, 시간 구하기 (GETDATE()) (0) | 2018.06.12 |
[MS-SQL] 특정 기간 범위 구하기 (0) | 2018.06.11 |
[MS-SQL] 특정 일자 요일 구하기 (0) | 2018.06.08 |