MSSQL 2008/MSSQL SQL

SQL - 날짜 및 시간 데이터 처리 방법

본클라쓰 2011. 5. 3. 15:26

날짜 및 시간 데이터 형식

데이터형

표현방식

범위

TIME

hh:mm:ss[.nnnnnnn]

00:00:00.0000000

23:59:59.0000000

DATE

YYYY-MM-DD

0001-01-01

9999-12-31

SMALLDATETIME

YYYY-MM-DD hh:mm:ss

1900-01-01

2079-06-06

DATETIME

YYYY-MM-DD hh:mm:ss[.nnn]

1753-01-01

9999-12-31

DATETIME2

YYYY-MM-DD hh:mm:ss[.nnnnnnn]

0001-01-01

9999-12-31

 

 

 

1. 시스템 날짜 및 시간 함수

 

시스템 날짜 및 시간을 가져오는 함수는 여러개 있지만 대표적인 함수는 'GETDATE()' 함수입니다. GETDATE() 함수는 SQL 서버 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간을 반환합니다.

 

SELECT GETDATE()

 

 

 

2. 날짜 및 시간 부분 가져오기 함수

 

DAY(DATE) : 지정된 날짜의 일 부분을 나타내는 정수를 반환합니다.

MONTH(DATE) : 지정된 날짜의 월 부분을 나타내는 정수를 반환합니다.

YEAR(DATE) : 지정된 날짜의 연도 부분을 나타내는 정수를 반환합니다.

DATENAME(DATEPART, DATE) : 지정된 날짜의 지정된 DATEPART를 나타내는 문자열을 반환합니다.

DATEPART(DATEPART, DATE) : 지정된 날짜의 DATEPART를 나타내는 정수를 반환합니다.

 

SELECT DATENAME(yy, GETDATE())

>2012

 

CONVERT(TIME(0), GETDATE(), 108)

> 10:17:09

 

해당 날짜에서 월이나 날짜 값은 DAY, MONTH, YEAR 함수를 사용하여 얻을 수 있습니다.

 

SELECT COUNT(*) FROM HOUSE WHERE MONTH(INCOME_DATE) = 3 AND YEAR(INCOME_DATE) =2011

 

 

 

3. 날짜 비교

 

날짜형 데이터형은 관계 연산자를 사용해 비교가 가능합니다.

 

SELECT * FROM USER WHERE ENTRY_DATE > GETDATE()

 

 

 

 

 

날짜형의 변환

 

 DATETIME 형을 '2001-01-01'의 DATA형으로 변환할 때는 CAST() 함수 또는 CONVERT() 함수를 사용합니다.

 

CAST(DATETIME AS DATE)

CONVERT(데이터타입, 표현식) 

 

SELECT CAST('2011-08-01' AS DATE)

CONVERT(DATE, START_DTM, 102) = '20110924'

 

 

 

 

 

날짜 간의 차이 구하기

 

 날짜/시간 데이터 형식에 대해 더하기 및 빼기 연산을 수행하려면 DATEADD 및 DATEDIFF를 사용합니다. DATEDIFF() 함수를 사용하여 날짜 간의 차이를 구할 수 있습니다. DATEDIFF() 함수는 세 개의 매개인자를 주는데 첫 번째 인자가 돌려주는 차이의 값의 종류를 결정합니다. 만약 두 날짜간의 달 수를 얻고 싶다면 'MONTH'를 사용하면 됩니다.

 

SELECT * FROM USER WHERE DATEDIFF(MONTH, WITHDRAWDATE, ENTRYDATE) > 10

 

위 쿼리문은 사용자의 탈퇴일과 가입일의 차이가 10달인 넘는 사용자만 검색하는 쿼리문입니다. 이 때 interval(첫번재 매개변수)로 줄 수있는 값은 YEAR, MONTH, WEEK, HOUR, MINUTE, SECOND 등이 올 수 있습니다.

 

두 날짜의 시간차이를 분으로 반환

DATEDIFF(MINUTE, START_DTM, END_DTM)

 

 

 

'MSSQL 2008 > MSSQL SQL' 카테고리의 다른 글

SQL - 테이블의 데이터 복사  (0) 2011.09.15
SQL - Null 비교 방법  (0) 2011.08.11
SQL - 변수 선언 및 사용 방법  (0) 2011.05.03
SQL - 내장함수 (숫자, 문자열, 날짜)  (0) 2011.03.14
SQL - CASE...END 분기문  (0) 2011.03.14