날짜 및 시간 데이터 형식
데이터형 |
표현방식 |
범위 |
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 서버 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간을 반환합니다.
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() 함수를 사용합니다.
CONVERT(데이터타입, 표현식)
SELECT CAST('2011-08-01' AS DATE)
CONVERT(DATE, START_DTM, 102) = '20110924'
날짜 간의 차이 구하기
날짜/시간 데이터 형식에 대해 더하기 및 빼기 연산을 수행하려면 DATEADD 및 DATEDIFF를 사용합니다. DATEDIFF() 함수를 사용하여 날짜 간의 차이를 구할 수 있습니다. DATEDIFF() 함수는 세 개의 매개인자를 주는데 첫 번째 인자가 돌려주는 차이의 값의 종류를 결정합니다. 만약 두 날짜간의 달 수를 얻고 싶다면 'MONTH'를 사용하면 됩니다.
위 쿼리문은 사용자의 탈퇴일과 가입일의 차이가 10달인 넘는 사용자만 검색하는 쿼리문입니다. 이 때 interval(첫번재 매개변수)로 줄 수있는 값은 YEAR, MONTH, WEEK, HOUR, MINUTE, SECOND 등이 올 수 있습니다.
두 날짜의 시간차이를 분으로 반환
'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 |