다음을 통해 공유


SWITCHOFFSET(Transact-SQL)

저장된 표준 시간대 오프셋에서 지정된 새 표준 시간대 오프셋으로 변경된 datetimeoffset 값을 반환합니다.

모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오.

적용 대상: SQL Server(SQL Server 2008 - current version), Windows Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

SWITCHOFFSET ( DATETIMEOFFSET, time_zone )

인수

  • DATETIMEOFFSET
    datetimeoffset(n) 값으로 확인될 수 있는 식입니다.

  • time_zone
    [+|-]TZH:TZM 또는 부호 있는 정수(분) 형식의 문자열로, 표준 시간대 오프셋을 나타내고 일광 절약 시간제를 인식하고 조정할 수 있는 것으로 간주됩니다.

반환 형식

DATETIMEOFFSET 인수의 소수 자릿수와 datetimeoffset

주의

처음 저장된 표준 시간대 오프셋과 다른 표준 시간대 오프셋으로 datetimeoffset 값을 선택하려면 SWITCHOFFSET을 사용합니다. SWITCHOFFSET은 저장된 time_zone 값을 업데이트하지 않습니다.

SWITCHOFFSET은 datetimeoffset 열을 업데이트하는 데 사용할 수 있습니다.

GETDATE() 함수에 SWITCHOFFSET을 사용하면 쿼리 실행이 느려질 수 있습니다. 이는 쿼리 최적화 프로그램에서 datetime 값에 대한 정확한 카디널리티 예측을 구할 수 없기 때문입니다. 이 문제를 해결하려면 OPTION (RECOMPILE) 쿼리 힌트를 사용하여 다음에 동일한 쿼리를 실행할 때 쿼리 최적화 프로그램에서 쿼리 계획을 다시 컴파일하도록 하십시오. 그러면 최적화 프로그램에서 정확한 카디널리티 예측을 구해 더 효율적인 쿼리 계획을 생성합니다. RECOMPILE 쿼리 힌트에 대한 자세한 내용은 쿼리 힌트(Transact-SQL)를 참조하십시오.

DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00'); 
SELECT * FROM t  
WHERE c1 > @dt OPTION (RECOMPILE);

다음 예에서는 SWITCHOFFSET을 사용하여 데이터베이스에 저장된 값과 다른 표준 시간대 오프셋을 표시합니다.

CREATE TABLE dbo.test 
    (
    ColDatetimeoffset datetimeoffset
    );
GO
INSERT INTO dbo.test 
VALUES ('1998-09-20 7:45:50.71345 -5:00');
GO
SELECT SWITCHOFFSET (ColDatetimeoffset, '-08:00') 
FROM dbo.test;
GO
--Returns: 1998-09-20 04:45:50.7134500 -08:00
SELECT ColDatetimeoffset
FROM dbo.test;
--Returns: 1998-09-20 07:45:50.7134500 -05:00

참고 항목

참조

CAST 및 CONVERT(Transact-SQL)