다음을 통해 공유


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]

  • hh는 0에서 14 사이에 속하는 두 자리 숫자로, 표준 시간대 오프셋의 시간(시간)을 나타냅니다.

  • mm은 0에서 59 사이에 속하는 두 자리 숫자로, 표준 시간대 오프셋의 추가 시간(분)을 나타냅니다.

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

소수 자릿수 초의 전체 자릿수가 열에 대해 지정한 값을 초과하면 문자열이 오류 없이 잘립니다.