본문 바로가기

work/mssql

날짜 및 시간 요일 구하기

DATEPART
지정한 날짜의 특정 날짜 부분을 나타내는 정수를 반환합니다.

구문
DATEPART ( datepart , date ) 

인수
datepart

반환될 날짜 부분을 지정하는 매개 변수입니다.  다음은 Microsoft® SQL Server™에서 인식하는 날짜 부분과 약어입니다.

날짜 부분 약어
year yy, yyyy
quarter qq, q 
month mm, m 
dayofyear dy, y 
day dd, d 
week wk, ww
weekday dw
hour hh
minute mi, n 
second ss, s 
millisecond ms


week(wk, ww) 날 짜 부분은 SET DATEFIRST의 변경 사항을 반영합니다.  모든 해의 1월 1일은 week 날짜 부분의 시작 값을 정의합니 다. 예를 들어, DATEPART(wk, 'Jan 1, xxxx') = 1에서 xxxx는 연도입니다.

weekday(dw) 날짜 부분은 요일에 해당하는 숫자를 반환합니다. 예를 들어, 일요일 = 1, 토요일 = 7입니다. weekday 날짜 부분에서 반환되는 값은 요일의 첫 번째 날을 설정하는 SET DATEFIRST에 설정된 값에 따라 다릅니다.

date

날 짜 형식에서 datetime 또는 smalldatetime 값이나 문자열을 반환하는 식입니다.  1753년 1월 1일 이후의 날짜 에 대해서는 datetime 데이터 형식을 사용하고 1753년 1월 1일 이전의 날짜는 문자 데이터로 저장합니 다.  datetime 값을 입력할 때는 항상 인용 부호로 묶습니다.  smalldatetime은 분 단위로만 정확하므 로 smalldatetime 값을 사용할 경우 초와 밀리초는 항상 0입니다.

연도의 마지막 두 자리 숫자만 지정할 경 우 two digit year cutoff 구성 옵션 값의 마지막 두 자리 숫자보다 작거나 같은 값은 구분 기준 연도와 같은 세기 에 해당합니다.  이 옵션 값의 마지막 두 자리 숫자보다 큰 값은 구분 기준 연도보다 이전 세기에 해당합니다.  예를 들 어, two digit year cutoff가 2049(기본값)일 경우 49는 2049년으로 해석되고 2050은 1950년으로 해 석됩니다. 이러한 애매함을 피하기 위해 네 자리 연도를 사용하십시오.

시간 값 지정에 대한 자세한 내용은 시간 형식을 참조하십시오. 날짜 지정에 대한 자세한 내용은 datetime 및 smalldatetime을 참조하십시오.

반환 형식
int

비고
DAY, MONTH, YEAR 함수는 각각 DATEPART(dd, date), DATEPART(mm, date), DATEPART(yy, date)의 동의어입니다.

예제
GETDATE 함수는 현재 날짜를 반환하지만 실제로 날짜를 비교할 때는 전체 날짜가 아닌 일부분만 필요할 경우가 많습니다.  다음은 GETDATE와 DATEPART의 결과를 보여 주는 예제입니다.

SELECT GETDATE() AS 'Current Date'
GO

결과 집합은 다음과 같습니다.

Current Date                                          
------------------------
2000-08-10 14:06:04.950

(1개 행 적용됨)

SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO

결과 집합은 다음과 같습니다.

Month Number
------------
2            

다음 예제는 날짜가 5월 29일인 경우입니다.

SELECT DATEPART(month, GETDATE())
GO

결과 집합은 다음과 같습니다.

-----------
5          

(1개 행 적용됨)

위의 예제에서 날짜는 숫자로 지정됩니다.  SQL Server는 0을 1900년 1월 1일로 해석합니다.

SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)

결과 집합은 다음과 같습니다.

----- ------ ------
1     1      1900