'DATEDIFF'에 해당되는 글 1건

  1. 2010.02.09 날짜간격 알아내기에 유용한 DATEDIFF() 함수

-- 온라인 설명서

지정된 startdateenddate 간에 겹쳐지는 지정된 datepart 범위의 수(부호 있는 정수)를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

DATEDIFF ( datepart , startdate , enddate )

인수

datepart

겹쳐지는 범위의 유형을 지정하는 startdateenddate 부분입니다.
다음 표에서는 올바른 모든 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

startdate

time, date, smalldatetime, datetime, datetime2 또는 datetimeoffset 값으로 확인될 수 있는 식입니다.
date
는 식, 열 식, 사용자 정의 변수 또는 문자열 리터럴일 수 있습니다.
enddate
에서 startdate를 뺍니다.

모호성을 피하려면 4자리 연도를 사용하십시오.
2
자리 연도에 대한 자세한 내용은 two digit year cutoff 옵션을 참조하십시오.

enddate

startdate를 참조하십시오.

반환 값

·         datepart와 해당 약어는 동일한 값을 반환합니다.

반환 값이 int에 대한 범위(-2,147,483,648에서 +2,147,483,647 사이)를 벗어날 경우 오류가 반환됩니다. millisecond의 경우 startdateenddate 사이의 최대 차이는 24, 20시간, 31, 23.647초입니다.
second
의 경우 최대 차이는 68년입니다.

startdateenddate가 모두 시간 값으로만 할당되고 datepart가 시간 datepart가 아닐 경우 0이 반환됩니다.

startdate 또는 enddate의 표준 시간대 오프셋 구성 요소는 반환 값을 계산하는 데 사용되지 않습니다.

smalldatetime은 분 단위까지만 정확하므로 startdate 또는 enddatesmalldatetime 값이 사용될 경우
반환 값에서 초와 밀리초는 항상 0으로 설정됩니다.

날짜 데이터 형식의 변수에 시간 값만 할당된 경우 누락된 날짜 부분의 값은 기본값인 1900-01-01로 설정되고,
시간 또는 날짜 데이터 형식의 변수에 날짜 값만 할당될 경우 누락된 시간 부분의 값은 기본값인 00:00:00으로 설정됩니다.
startdate
또는 enddate 중 하나는 시간 부분만 있고 다른 하나는 날짜 부분만 있는 경우
누락된 시간 및 날짜 부분은 기본값으로 설정됩니다.

startdateenddate의 날짜 데이터 형식이 다르고 한 쪽의 시간 부분 또는
소수 자릿수 초의 전체 자릿수가 다른 쪽보다 많을 경우 다른 쪽에서 누락된 부분은 0으로 설정됩니다.

datepart 범위

다음 문은 동일한 startdate와 동일한 enddate를 가집니다. 이러한 날짜는 서로 인접하며 차이는 .0000001초입니다. 각 문에서 startdateenddate 사이의 차이는 해당 datepart에서 하나의 달력 또는 시간 범위를 넘어섭니다.
각 문은 1을 반환합니다. 이 예에서 다른 연도가 사용되고 startdateenddate가 달력의 같은 주에 있을 경우 week에 대한 반환 값은 0이 됩니다.

주의

DATEDIFF SELECT 목록, WHERE, HAVING, GROUP BY ORDER BY 절에서 사용할 수 있습니다.


해당일간의 간격을 이용한 쿼리를 짜야하는데 사용한 쿼리이다

막상 사용할려먼 항상 까먹는다 이름이 좀 애매해서 ㅎㅎ
DIFF 가 difference 의 약어인가보다

날짜간격을 구하기 위해선 날짜형 함수로 변환해서 빼서 구하는 방법도 있지만
DATEDIFF() 함수를 사용하면 유용하다.

Posted by 스왓
이전버튼 1 이전버튼