다음을 통해 공유


datetimeoffset(Transact-SQL)

표준 시간대를 인식하며 24시간제를 기준으로 하는 시간과 결합된 날짜를 정의합니다.

모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 함수(Transact-SQL)를 참조하십시오. 날짜/시간 데이터 형식 및 함수에 대한 자세한 내용과 일반적인 예는 날짜 및 시간 데이터 사용을 참조하십시오.

datetimeoffset 설명

속성

구문

datetimeoffset [ (fractional seconds precision) ]

용도

DECLARE @MyDatetimeoffset datetimeoffset(7)

CREATE TABLE Table1 ( Column1 datetimeoffset(7) )

하위 클라이언트에 대해 사용되는 기본 문자열 리터럴 형식

YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]

자세한 내용은 날짜 및 시간 데이터 사용의 "하위 클라이언트에 대한 이전 버전과의 호환성" 섹션을 참조하십시오.

날짜 범위

0001-01-01부터 9999-12-31까지

서기 1년 1월 1일부터 9999년 12월 31일까지

시간 범위

00:00:00부터 23:59:59.9999999까지

표준 시간대 오프셋 범위

  • -14:00부터 +14:00까지

요소 범위

YYYY는 0001에서 9999 사이에 속하는 4자리 숫자로, 연도를 나타냅니다.

MM은 01에서 12 사이에 속하는 두 자리 숫자로, 지정한 연도의 월을 나타냅니다.

DD는 월에 따라 01에서 31 사이에 속하는 두 자리 숫자로, 지정한 월의 일을 나타냅니다.

hh는 00에서 23 사이에 속하는 두 자리 숫자로, 시를 나타냅니다.

mm은 00에서 59 사이에 속하는 두 자리 숫자로, 분을 나타냅니다.

ss는 00에서 59 사이에 속하는 두 자리 숫자로, 초를 나타냅니다.

n*은 0에서 9999999 사이에 속하는 0부터 7 자리의 숫자로, 소수 자릿수 초를 나타냅니다.

hh는 -14에서 14 사이에 속하는 두 자리 숫자입니다.

mm은 00에서 59 사이에 속하는 두 자리 숫자입니다.

문자 길이

최소 26자리(YYYY-MM-DD hh:mm:ss {+|-}hh:mm)부터 최대 34자리(YYYY-MM-DD hh:mm:ss.nnnnnnn {+|-}hh:mm)까지

전체 자릿수, 소수 자릿수

지정한 소수 자릿수결과(전체 자릿수, 소수 자릿수)열 길이(바이트)소수 자릿수 초의 전체 자릿수
datetimeoffset (34,7)107
datetimeoffset(0) (26,0)80-2
datetimeoffset(1) (28,1)80-2
datetimeoffset(2) (29,2)80-2
datetimeoffset(3) (30,3)93-4
datetimeoffset(4) (31,4)93-4
datetimeoffset(5) (32,5)105-7
datetimeoffset(6) (33,6)105-7
datetimeoffset(7) (34,7)105-7

저장소 크기

초 소수 부분 자릿수 기본값 100ns를 기준으로 10바이트(고정)가 기본값입니다.

정확도

100나노초

기본값

1900-01-01 00:00:00 00:00

달력

일반 달력

사용자 정의 초 소수 부분 자릿수

표준 시간대 오프셋 인식 및 유지

일광 절약 시간제 인식

아니요

datetimeoffset에 대해 지원되는 문자열 리터럴 형식

다음 표에는 datetimeoffset에 대해 지원되는 ISO 8601 문자열 리터럴 형식이 나와 있습니다. datetimeoffset의 날짜 및 시간 부분에 대한 영문자, 숫자, 시간 및 구분되지 않은 형식에 대한 내용은 date(Transact-SQL)time(Transact-SQL)을 참조하십시오.

ISO 8601

설명

YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm]

이 두 가지 형식은 SET LANGUAGE 및 SET DATEFORMAT 세션 로캘 설정의 영향을 받지 않습니다. datetimeoffset과 datetime 부분 사이에는 공백이 허용되지 않습니다.

YYYY-MM-DDThh:mm:ss[.nnnnnnn]Z (UTC)

ISO 정의에 따른 이 형식은 datetime 부분이 UTC(Coordinated Universal Time)로 표현되어야 함을 나타냅니다. 예를 들어 1999-12-12 12:30:30.12345 -07:00는 1999-12-12 19:30:30.12345Z로 표시되어야 합니다.

표준 시간대 오프셋

표준 시간대 오프셋은 time 또는 datetime 값에 대한 UTC의 표준 시간대 오프셋을 지정합니다. 표준 시간대 오프셋은 [+|-] hh:mm:으로 나타낼 수 있습니다.

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

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

  • +(더하기) 또는 –(빼기)는 표준 시간대 오프셋의 필수 기호입니다. 이는 현지 시간을 가져오기 위해 UTC 시간에서 표준 시간대 오프셋을 더했는지 또는 뺐는지를 나타냅니다. 올바른 표준 시간대 오프셋 범위는 -14:00에서 +14:00 사이입니다.

표준 시간대 범위는 XSD 스키마 정의에 대한 W3C XML 표준을 따르며 12:59에서 +14:00 사이인 SQL 2003 표준 정의와 약간 다릅니다.

선택적 유형 매개 변수인 fractional seconds precision은 초의 소수 부분의 자릿수를 지정합니다. 이 값은 0에서 7 사이의 정수입니다(100나노초). 기본 fractional seconds precision은 100ns(초의 소수 부분의 자릿수가 7자리임)입니다.

데이터는 데이터베이스에 저장되며 UTC에서와 마찬가지로 서버에서 처리, 비교, 정렬 및 인덱싱됩니다. 표준 시간대 오프셋은 검색할 수 있도록 데이터베이스에 유지됩니다.

지정된 표준 시간대 오프셋은 DST(일광 절약 시간제)를 인식하고, DST 기간에 있는 모든 datetime에 대해 조정할 수 있는 것으로 간주됩니다.

datetimeoffset 형식의 경우 UTC 및 영구 또는 변환 표준 시간대 오프셋에 대한 현지 datetime 값에 대해 삽입, 업데이트, 산술, 변환 또는 할당 작업 중 유효성 검사가 수행됩니다. 잘못된 UTC나 영구 또는 변환 표준 시간대 오프셋에 대한 현지 datetime 값이 인식되면 잘못된 값 오류가 발생합니다. 예를 들어 9999-12-31 10:10:00는 UTC에서 유효하지만 표준 시간대 오프셋 +13:50에 대한 현지 시간에서는 오버플로됩니다.

ANSI 및 ISO 8601 호환성

날짜시간 항목의 ANSI 및 ISO 8601 호환성 섹션이 datetimeoffset에 적용됩니다.

다음 예에서는 문자열을 각각 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'
    ,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetimeoffset(7)) AS
        'datetimeoffset IS08601';

결과 집합은 다음과 같습니다.

데이터 형식

출력

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