time(Transact-SQL)
시간을 정의합니다. 시간은 표준 시간대를 인식하지 않으며 24시간제를 기준으로 합니다.
모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오. 날짜/시간 데이터 형식 및 함수에 대한 자세한 내용과 일반적인 예는 날짜 및 시간 데이터 사용을 참조하십시오.
time 설명
속성 |
값 |
---|---|
구문 |
time [ (fractional second precision) ] |
용도 |
DECLARE @MyTime time(7) CREATE TABLE Table1 ( Column1 time(7) ) |
fractional seconds precision |
초의 소수 부분의 자릿수를 지정합니다. 0에서 7 사이의 정수를 지정할 수 있습니다. 기본 소수 자릿수는 7(100ns)입니다. |
용도 |
DECLARE @MyTime time(7) CREATE TABLE Table1 ( Column1 time(7) ) |
기본 문자열 리터럴 형식 (하위 클라이언트에 대해 사용됨) |
hh:mm:ss[.nnnnnnn] 자세한 내용은 날짜 및 시간 데이터 사용의 "하위 클라이언트에 대한 이전 버전과의 호환성" 섹션을 참조하십시오. |
범위 |
00:00:00.0000000부터 23:59:59.9999999까지 |
요소 범위 |
hh는 0에서 23 사이에 속하는 두 자리 숫자로, 시를 나타냅니다. mm은 0에서 59 사이에 속하는 두 자리 숫자로, 분을 나타냅니다. ss는 0에서 59 사이에 속하는 두 자리 숫자로, 초를 나타냅니다. n*은 0에서 9999999 사이에 속하는 0부터 7 자리의 숫자로, 소수 자릿수 초를 나타냅니다. |
문자 길이 |
최소 8자리(hh:mm:ss)부터 최대 16자리(hh:mm:ss.nnnnnnn)까지 |
전체 자릿수, 소수 자릿수 (사용자는 소수 자릿수만 지정) |
지정한 소수 자릿수결과(전체 자릿수, 소수 자릿수)열 길이(바이트)소수 자릿수 초의 전체 자릿수
time (16,7)57
time(0) (8,0)30-2
time(1) (10,1)30-2
time(2) (11,2)30-2
time(3) (12,3)43-4
time(4) (13,4)43-4
time(5) (14,5)55-7
time(6) (15,6)55-7
time(7) (16,7)55-7
|
저장소 크기 |
초 소수 부분 자릿수 기본값 100ns를 기준으로 5바이트(고정)가 기본값입니다. |
정확도 |
100나노초 |
기본값 |
00:00:00 이 값은 date에서 datetime2 또는 datetimeoffset으로의 암시적 변환을 위해 추가되는 시간 부분에 사용됩니다. |
사용자 정의 초 소수 부분 자릿수 |
예 |
표준 시간대 오프셋 인식 및 유지 |
아니요 |
일광 절약 시간제 인식 |
아니요 |
time에 지원되는 문자열 리터럴 형식
다음 표에서는 time 데이터 형식의 유효한 문자열 리터럴 형식을 보여 줍니다.
SQL Server |
설명 |
---|---|
hh:mm[:ss][:소수 자릿수 초][AM][PM] hh:mm[:ss][.소수 자릿수 초][AM][PM] hhAM[PM] hh AM[PM] |
시간 값 0은 AM 지정 여부와 관계없이 자정(AM) 이후 시간을 나타냅니다. 시간이 0일 경우 PM을 지정할 수 없습니다. 01부터 11까지의 시간 값은 AM 또는 PM을 지정하지 않는 경우 오전을 나타냅니다. AM을 지정하면 이 값은 오전을 나타내고 PM을 지정하면 오후를 나타냅니다. 시간 값 12는 AM 또는 PM을 지정하지 않는 경우 정오 이후의 시간을 나타냅니다. AM을 지정하면 이 값은 자정 이후의 시간을 나타내고 PM을 지정하면 정오 이후의 시간을 나타냅니다. 예를 들어 12:01은 12:01 PM과 마찬가지로 정오에서 1분 지난 시간이고 12:01 AM은 자정에서 1분 지난 시간입니다. 12:01 AM을 지정하는 것은 00:01 또는 00:01 AM을 지정하는 것과 같습니다. 13부터 23까지의 시간 값은 AM 또는 PM을 지정하지 않는 경우 정오 이후의 시간을 나타냅니다. 또한 PM을 지정하는 경우에도 이 값은 정오 이후의 시간을 나타냅니다. 13부터 23까지의 시간 값을 사용할 경우 AM을 지정할 수 없습니다. 시간 값 24는 유효하지 않습니다. 자정을 나타내려면 12:00 AM 또는 00:00을 사용하십시오. 밀리초 앞에는 콜론(:) 또는 마침표(.)가 올 수 있습니다. 콜론을 사용하면 숫자는 1/1000초를 의미합니다. 마침표를 사용하면 자릿수 하나는 1/10초를 의미하고 자릿수 두 개는 1/100초를 의미하며 자릿수 세 개는 1/1000초를 의미합니다. 예를 들어 12:30:20:1은 12:30분에서 20과 1/1000초가 지난 시간을 의미하고 12:30:20.1은 12:30분에서 20과 1/10초가 지난 시간을 의미합니다. |
ISO 8601 |
참고 |
---|---|
hh:mm:ss hh:mm[:ss][.fractional seconds] |
|
ODBC |
참고 |
---|---|
{t 'hh:mm:ss[.소수 자릿수 초]'} |
ODBC API에 따라 다릅니다. SQL Server 2005와 동일한 SQL Server 2008의 함수입니다. |
ANSI 및 ISO 8601 표준을 준수하는 time
ISO 8601(5.3.2 및 5.3)에서 정의된 대로 자정에 24시를 사용하는 형식과 59를 초과하는 초에 윤초를 사용하는 형식은 이전 버전과의 호환성과 기존 날짜 및 시간 형식과의 일관성을 유지하기 위해 지원되지 않습니다. 이러한 형식은 SQL 2003 표준에 정의되어 있지 않습니다.
하위 클라이언트에 대해 사용되는 기본 문자열 리터럴 형식은 hh:mm:ss[.nnnnnnn]로 정의되는 SQL 표준 형식에 부합됩니다. 이러한 형식은 소수 자릿수 초를 제외하고 TIME에 대한 ISO 8601의 정의와 유사합니다.
예
1. 날짜 및 시간 데이터 형식 비교
다음 예에서는 문자열을 각각 date 및 time 데이터 형식으로 캐스팅한 결과를 비교합니다.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
데이터 형식 |
출력 |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
2. time(7) 열에 유효한 시간 문자열 리터럴 삽입
다음 표에서는 time(7) 데이터 형식의 열에 삽입할 수 있는 여러 문자열 리터럴과 해당 열에 저장되는 값을 보여 줍니다.
문자열 리터럴 형식 유형 |
삽입되는 문자열 리터럴 |
저장되는 time(7) 값 |
설명 |
---|---|---|---|
SQL Server |
'01:01:01:123AM' |
01:01:01.1230000 |
콜론(:)이 소수 자릿수 초의 전체 자릿수 앞에 오면 소수 자릿수는 세 자리를 초과할 수 없으며 초과할 경우 오류가 발생합니다. |
SQL Server |
'01:01:01.1234567 AM' |
01:01:01.1234567 |
AM 또는 PM을 지정하면 시간이 리터럴 AM 또는 PM 없이 24시간 형식으로 저장됩니다. |
SQL Server |
'01:01:01.1234567 PM' |
13:01:01.1234567 |
AM 또는 PM을 지정하면 시간이 리터럴 AM 또는 PM 없이 24시간 형식으로 저장됩니다. |
SQL Server |
'01:01:01.1234567PM' |
13:01:01.1234567 |
AM 또는 PM 앞의 공백은 선택 사항입니다. |
SQL Server |
'01AM' |
01:00:00.0000000 |
시간만 지정하면 다른 값은 모두 0이 됩니다. |
SQL Server |
'01 AM' |
01:00:00.0000000 |
AM 또는 PM 앞의 공백은 선택 사항입니다. |
SQL Server |
'01:01:01' |
01:01:01.0000000 |
소수 자릿수 초의 전체 자릿수를 지정하지 않으면 데이터 형식에 따라 정의되는 각 자릿수는 0입니다. |
ISO 8601 |
'01:01:01.1234567' |
01:01:01.1234567 |
ISO 8601을 따르려면 AM 또는 PM 대신 24시간 형식을 사용하십시오. |
ISO 8601 |
'01:01:01.1234567 +01:01' |
01:01:01.1234567 |
TZD(Time Zone Difference)는 선택 사항이며 입력할 수 있지만 저장되지 않습니다. |
3. 각 date 및 time 날짜 형식의 열에 시간 문자열 리터럴 삽입
다음 표에서 첫 번째 열은 두 번째 열의 날짜 또는 시간 데이터 형식의 데이터베이스 테이블 열에 삽입될 시간 문자열 리터럴을 보여 줍니다. 세 번째 열은 데이터베이스 테이블 열에 저장될 값을 보여 줍니다.
삽입되는 문자열 리터럴 |
열 데이터 형식 |
열에 저장되는 값 |
설명 |
---|---|---|---|
'12:12:12.1234567' |
time(7) |
12:12:12.1234567 |
소수 자릿수 초의 전체 자릿수가 열에 대해 지정한 값을 초과하면 문자열이 오류 없이 잘립니다. |
'2007-05-07' |
date |
NULL |
시간 값이 있으면 INSERT 문이 실패합니다. |
'12:12:12' |
smalldatetime |
1900-01-01 12:12:00 |
소수 자릿수 초의 전체 자릿수 값이 있으면 INSERT 문이 실패합니다. |
'12:12:12.123' |
datetime |
1900-01-01 12:12:12.123 |
초 전체 자릿수가 세 자리를 초과하면 INSERT 문이 실패합니다. |
'12:12:12.1234567' |
datetime2(7) |
1900-01-01 12:12:12.1234567 |
소수 자릿수 초의 전체 자릿수가 열에 대해 지정한 값을 초과하면 문자열이 오류 없이 잘립니다. |
'12:12:12.1234567' |
datetimeoffset(7) |
1900-01-01 12:12:12.1234567 +00:00 |
소수 자릿수 초의 전체 자릿수가 열에 대해 지정한 값을 초과하면 문자열이 오류 없이 잘립니다. |