[MS-SQL] 날짜, 시간차이 구하기 (DATEDIFF)
2018. 6. 14. 17:24
본체 | 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년 정도이다.
보고 있는 글과 같이 보면 좋은 글들..
'MS-SQL > 명령어&함수' 카테고리의 다른 글
[MS-SQL]프로시저 내부 단어 검색하기 (0) | 2019.04.29 |
---|---|
[MS-SQL] [Function] 컬럼명 변경 하기 (SP_RENAME) (0) | 2019.04.09 |
[MS-SQL] [ALTER] 테이블에 컬럼 추가 하기 (0) | 2019.04.09 |
[MS-SQL] 테이블 및 컬럼 Description 및 정보 가져오기 (0) | 2019.04.05 |
[MS-SQL] 현재 날짜, 시간 구하기 (GETDATE()) (0) | 2018.06.12 |