time(Transact-SQL)
시간을 정의합니다. 시간은 표준 시간대를 인식하지 않으며 24시간제를 기준으로 합니다.
모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오. 날짜/시간 데이터 형식 및 함수에 대한 자세한 내용과 일반적인 예는 날짜 및 시간 데이터 사용을 참조하십시오.
|
속성 |
값 |
|---|---|
|
구문 |
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)
5
7
time(0)
(8,0)
3
0-2
time(1)
(10,1)
3
0-2
time(2)
(11,2)
3
0-2
time(3)
(12,3)
4
3-4
time(4)
(13,4)
4
3-4
time(5)
(14,5)
5
5-7
time(6)
(15,6)
5
5-7
time(7)
(16,7)
5
5-7
|
|
저장소 크기 |
초 소수 부분 자릿수 기본값 100ns를 기준으로 5바이트(고정)가 기본값입니다. |
|
정확도 |
100나노초 |
|
기본값 |
00:00:00 이 값은 date에서 datetime2 또는 datetimeoffset으로의 암시적 변환을 위해 추가되는 시간 부분에 사용됩니다. |
|
사용자 정의 초 소수 부분 자릿수 |
예 |
|
표준 시간대 오프셋 인식 및 유지 |
아니요 |
|
일광 절약 시간제 인식 |
아니요 |
다음 표에서는 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의 함수입니다. |
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 |
소수 자릿수 초의 전체 자릿수가 열에 대해 지정한 값을 초과하면 문자열이 오류 없이 잘립니다. |
