적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric의 SQL 데이터베이스
저장된 표준 시간대 오프셋에서 지정된 새 표준 시간대 오프셋으로 변경된 datetimeoffset 값을 반환합니다.
모든 Transact-SQL 날짜 및 시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수를 참조하세요.
구문
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
인수
datetimeoffset_expression
datetimeoffset(n) 값으로 확인할 수 있는 식입니다.
timezoneoffset_expression
[+|-]TZH:TZM 형식의 식 또는 표준 시간대 오프셋을 나타내는 부호 있는 정수(분)이며 일광 절약 인식 및 조정으로 간주됩니다.
반환 형식
datetimeoffset을 datetimeoffset_expression 인수의 소수 전체 자릿수로 표시합니다.
설명
원래 저장된 표준 시간대 오프셋과 다른 표준 시간대 오프셋으로 SWITCHOFFSET 값을 선택하는 데 사용합니다.
SWITCHOFFSET 는 저장된 time_zone 값을 업데이트하지 않습니다.
SWITCHOFFSET 을 사용하여 datetimeoffset 열을 업데이트할 수 있습니다.
함수 SWITCHOFFSET 와 함께 사용하면 GETDATE() 쿼리가 느리게 실행될 수 있습니다. 이는 쿼리 최적화 프로그램에서 datetime 값에 대한 정확한 카디널리티 예측을 구할 수 없기 때문입니다. 이 문제를 해결하려면 쿼리 힌트를 OPTION (RECOMPILE) 사용하여 쿼리 최적화 프로그램이 다음에 동일한 쿼리를 실행할 때 쿼리 계획을 다시 컴파일하도록 합니다. 그런 다음 최적화 프로그램은 정확한 카디널리티 예상치를 가지며 보다 효율적인 쿼리 계획을 생성합니다. 쿼리 힌트에 대한 RECOMPILE 자세한 내용은 쿼리 힌트를 참조하세요.
DECLARE @dt AS 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