Azure SQL DB 를 비롯한 Azure services의 Default time zone 은 UTC로 되어 있습니다. Azure SQL DB에서 사용자 임의로 서버 및 데이터베이스 수준으로 default time zone을 변경할 수 없습니다. 시간 처리를 위해서 middle/front end 에서 별도 시간을 관리하거나 데이터베이스 수준에서는 UTC 또는 에서 KST 값을 구하는 별도의 쿼리를 사용해서 구현할 수 있습니다.
Azure SQL DB 에서 제공하는 AT TIME ZONE 을 사용하여 아래와 같이 KST 값을 구하는데 활용할 수 있습니다.
DECLARE @D AS datetimeoffset
SET @D = CONVERT(datetimeoffset, getdate()) AT TIME ZONE 'Korea Standard Time'
SELECT @D, CONVERT(datetime, @D);
SYS.TIME_ZONE_INFO 를 사용하면 UTC의 OFFSET 값과 매치되는 표준 시간 이름을 알 수 있습니다.
[참고자료]
AT TIME ZONE (Transact-SQL)
https://docs.microsoft.com/en-us/sql/t-sql/queries/at-time-zone-transact-sql
sys.time_zone_info (Transact-SQL)
https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-time-zone-info-transact-sql
Lesson Learned #4: Modifying the default time zone for your local time zone.
https://blogs.msdn.microsoft.com/azuresqlemea/2016/07/27/lesson-learned-4-modifying-the-default-time-zone-for-your-local-time-zone/
작성자: Lai Go / 작성일자: 2017.04.06