다음을 통해 공유


DATETIMEOFFSETFROMPARTS(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

지정된 날짜 및 시간 인수에 대한 datetimeoffset 값을 반환합니다. 반환된 값에는 전체 자릿수 인수에서 지정한 전체 자릿수 및 오프셋 인수에서 지정한 오프셋이 포함됩니다.

Transact-SQL 구문 표기 규칙

구문

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )  

인수

year
년을 지정하는 정수 식입니다.

month
월을 지정하는 정수 식입니다.

day
일을 지정하는 정수 식입니다.

hour
시간을 지정하는 정수 식입니다.

minute
분을 지정하는 정수 식입니다.


초를 지정하는 정수 식입니다.

fractions
소수 자릿수 초 값을 지정하는 정수 식입니다.

hour_offset
표준 시간대 오프셋의 시간 부분을 지정하는 정수 식입니다.

minute_offset
표준 시간대 오프셋의 분 부분을 지정하는 정수 식입니다.

전체 자릿수
DATETIMEOFFSETFROMPARTS가 반환하는 datetimeoffset 값의 전체 자릿수를 지정하는 정수 리터럴 값입니다.

반환 형식

datetimeoffset( precision )

설명

DATETIMEOFFSETFROMPARTS는 완전히 초기화된 datetimeoffset 데이터 형식을 반환합니다. 오프셋 인수는 표준 시간대 오프셋을 나타냅니다. 생략된 오프셋 인수의 경우 DATETIMEOFFSETFROMPARTS00:00의 표준 시간대 오프셋을 가정합니다. 즉 표준 시간대 오프셋이 없습니다. 지정된 오프셋 인수의 경우 DATETIMEOFFSETFROMPARTS는 두 인수의 값을 모두 예상하고 둘 다 양수 또는 음수 값으로 예상합니다. minute_offset에 값이 있고 hour_offset에 값이 없으면 DATETIMEOFFSETFROMPARTS에서 오류를 발생시킵니다. 다른 인수에 잘못된 값이 있으면 DATETIMEOFFSETFROMPARTS에서 오류를 발생시킵니다. 하나 이상의 필수 인수에 NULL 값이 있는 경우 DATETIMEOFFSETFROMPARTSNULL을 반환합니다. 그러나 precision 인수에 NULL 값이 있는 경우 DATETIMEOFFSETFROMPARTS에서 오류를 발생시킵니다.

fractions 인수는 precision 인수에 의존합니다. 예를 들어 precision의 값이 7이면 각 소수 자릿수가 100나노초를 나타내고 precision이 3이면 각 소수 자릿수가 1밀리초를 나타냅니다. precision의 값이 0이면 fractions의 값도 0이어야 합니다. 그렇지 않으면 DATETIMEOFFSETFROMPARTS가 오류를 발생시킵니다.

이 함수는 SQL Server 2012(11.x) 이상 서버에 대해서는 원격으로 실행할 수 있지만 SQL Server 2012(11.x) 이전 버전이 설치되어 있는 서버에 대해서는 원격으로 실행할 수 없습니다.

예제

A. 소수 단위 초를 사용하지 않는 예

SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;  

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

Result  
----------------------------------
2010-12-31 14:23:23.0000000 +12:00  
  
(1 row(s) affected)  

B. 소수 단위 초를 사용하는 예

이 예에서는 fractionsprecision 매개 변수의 사용 방법을 설명합니다.

  1. fractions의 값이 5이고 precision의 값이 1이면, fractions의 값은 1초의 5/10를 나타냅니다.

  2. fractions의 값이 50이고 precision의 값이 2이면, fractions의 값은 1초의 50/100을 나타냅니다.

  3. fractions의 값이 500이고 precision의 값이 3이면, fractions의 값은 1초의 500/1000을 나타냅니다.

SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );  
GO  

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

----------------------------------  
2011-08-15 14:30:00.5 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.50 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.500 +12:30  
  
(1 row(s) affected)  

참고 항목

datetimeoffset(Transact-SQL)
AT TIME ZONE(Transact-SQL)