DATETIMEOFFSETFROMPARTS(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
지정된 날짜 및 시간 인수에 대한 datetimeoffset 값을 반환합니다. 반환된 값에는 전체 자릿수 인수에서 지정한 전체 자릿수 및 오프셋 인수에서 지정한 오프셋이 포함됩니다.
구문
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 데이터 형식을 반환합니다. 오프셋 인수는 표준 시간대 오프셋을 나타냅니다. 생략된 오프셋 인수의 경우 DATETIMEOFFSETFROMPARTS
는 00:00
의 표준 시간대 오프셋을 가정합니다. 즉 표준 시간대 오프셋이 없습니다. 지정된 오프셋 인수의 경우 DATETIMEOFFSETFROMPARTS
는 두 인수의 값을 모두 예상하고 둘 다 양수 또는 음수 값으로 예상합니다. minute_offset에 값이 있고 hour_offset에 값이 없으면 DATETIMEOFFSETFROMPARTS
에서 오류를 발생시킵니다. 다른 인수에 잘못된 값이 있으면 DATETIMEOFFSETFROMPARTS
에서 오류를 발생시킵니다. 하나 이상의 필수 인수에 NULL
값이 있는 경우 DATETIMEOFFSETFROMPARTS
는 NULL
을 반환합니다. 그러나 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. 소수 단위 초를 사용하는 예
이 예에서는 fractions 및 precision 매개 변수의 사용 방법을 설명합니다.
fractions의 값이 5이고 precision의 값이 1이면, fractions의 값은 1초의 5/10를 나타냅니다.
fractions의 값이 50이고 precision의 값이 2이면, fractions의 값은 1초의 50/100을 나타냅니다.
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)