Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Azure SQL Veritabanı
Microsoft Fabric'te SQL veritabanı
Transact-SQL (T-SQL) ifadesi SET TIME ZONE , Azure SQL Veritabanı'de bir zaman dilimi değeri ve Microsoft Fabric'de SQL veritabanı ayarlamak için kullanılır.
Note
SET TIME ZONESQL Server veya Azure SQL Yönetilen Örneği'da desteklenmez.
SET TIME ZONE veritabanı veya örnek seviyesinde zaman kuşağı değerini geçersiz kılar. Saat bölgesi değeri, sys.time_zone_info sistem görünümündeki sütunla aynıdırname.
Transact-SQL söz dizimi kuralları
Syntax
SET TIME ZONE { 'time_zone_value' | 'LOCAL' }
[ ; ]
Argümanlar
{ 'time_zone_value' | 'YEREL' }
Zaman dilimi değerini belirtir.
time_zone_valuenvarchar(128)'dir ve varsayılan olarak ' LOCALdir.
Belirtilmişse LOCAL , mevcut oturum varsayılan zaman dilimi değeri oturumun orijinal zaman bölgesi değerine ayarlanır; bu da veritabanı kapsamlı seçenek veya örnek varsayılan olabilir.
Kurulu saat dilimlerinin listesi sys.time_zone_info sistem görünümü üzerinden görünür.
Remarks
Eğer SET TIME ZONE bir T-SQL modülünde veya dinamik SQL batch'inde kullanılırsa, değişiklik yalnızca modülün veya dinamik SQL batch'in yürütme kapsamına uygulanır. Modül veya dinamik SQL toplu çalıştırması tamamlandıktan sonra, oturum zaman kuşağı ayarı modül veya dinamik SQL batch'in yürütülmesinden önceki zaman bölgesi değerine geri döner.
Permissions
Ortak sabit veritabanı rolüne üyelik gerektirir.
Examples
Bu makaledeki kod örnekleri, Azure Data SQL Samples Repository GitHub deposundan indirebileceğiniz , AdventureWorksDW2025, veya AdventureWorksLT2025 örnek veritabanını kullanırAdventureWorks2025.
A. Mevcut saat dilimi ayarlarını görüntüleyin
Aşağıdaki sorgu, sunucu adı, veritabanı adı ve ürün sürümünü döndürür.
SELECT @@servername AS ServerName,
DB_NAME() AS DatabaseName,
SERVERPROPERTY('ResourceVersion') AS ProductVersion;
Aşağıdaki sorgu, geçerli saat dilimlerini UTC ofsetlerine göre sıralanmış olarak listeler.
SELECT *
FROM sys.time_zone_info
ORDER BY current_utc_offset;
Aşağıdaki sorgu, veritabanı TIME_ZONE kapsamlı yapılandırmanın mevcut değerini kontrol eder.
SELECT *
FROM sys.database_scoped_configurations
WHERE name = 'TIME_ZONE';
Eğer saat dizimi veritabanı seviyesinde ayarlanmadıysa, varsayılan olarak instance time zone'a geçer. Örnek zaman dilimi ayarı platforma bağlıdır:
| Platform | Açıklama |
|---|---|
| Windows | Altta yatan işletim sisteminin zaman dilimini. |
| Linux işletim sistemi | SQL Server sürecinin zaman dilimi, çevre değişkeni kullanılarak TZ ayarlayabiliyorsunuz. |
| Azure SQL Veritabanı | SQL örneğinin zaman dilimini, ki bu her zaman UTC ve bugün değiştirilemez. |
| Azure SQL Yönetilen Varlık | SQL örneğinin zaman dilimi olan varsayılan olarak UTC olup sadece bugün örnek oluşturulduğunda değiştirilebilmektedir. |
B. Saat dilini veritabanı seviyesinde ayarlayın
Aşağıdaki örnek, veritabanı kapsamlı saat dilimini Yeni Zelanda Standart Zamanı'na ayar, ardından etkilenen fonksiyonları gözden geçirir.
ALTER DATABASE SCOPED CONFIGURATION SET TIME_ZONE = 'New Zealand Standard Time';
GO
SELECT CURRENT_TIMEZONE() AS CurrentTimeZone,
CURRENT_TIMEZONE_ID() AS CurrentTimeZoneId,
SYSDATETIMEOFFSET() AS CurrentDateTimeOffset,
SYSDATETIME() AS CurrentLocalDateTime2,
GETDATE() AS CurrentLocalDateTime3,
CURRENT_TIMESTAMP AS CurrentLocalDateTime4;
C. Veritabanı kapsamlı saat dilimini varsayılan konuma sıfırla
Aşağıdaki örnek, veritabanı kapsamlı zaman dilimi LOCALile döner, ardından etkilenen fonksiyonları inceler.
ALTER DATABASE SCOPED CONFIGURATION SET TIME_ZONE = LOCAL;
GO
SELECT CURRENT_TIMEZONE() AS CurrentTimeZone,
CURRENT_TIMEZONE_ID() AS CurrentTimeZoneId,
SYSDATETIMEOFFSET() AS CurrentDateTimeOffset,
SYSDATETIME() AS CurrentLocalDateTime2,
GETDATE() AS CurrentLocalDateTime,
CURRENT_TIMESTAMP AS CurrentLocalDateTime2;
D. Saat dilimini oturum seviyesinde ayarlayın
Aşağıdaki örnek, oturum zaman dilimini Pasifik Standart Zamanı, ardından Hindistan Standart Zamanı'na ayarlar ve her değişiklikten sonra etkilenen fonksiyonları inceler.
SET TIME ZONE 'Pacific Standard Time';
SELECT CURRENT_TIMEZONE() AS CurrentTimeZone, CURRENT_TIMEZONE_ID() AS CurrentTimeZoneId,
SYSDATETIMEOFFSET() AS CurrentDateTimeOffset, SYSDATETIME() AS CurrentLocalDateTime2,
GETDATE() AS CurrentLocalDateTime3, CURRENT_TIMESTAMP AS CurrentLocalDateTime4;
GO
SET TIME ZONE 'India Standard Time';
SELECT CURRENT_TIMEZONE() AS CurrentTimeZone, CURRENT_TIMEZONE_ID() AS CurrentTimeZoneId,
SYSDATETIMEOFFSET() AS CurrentDateTimeOffset, SYSDATETIME() AS CurrentLocalDateTime2,
GETDATE() AS CurrentLocalDateTime3, CURRENT_TIMESTAMP AS CurrentLocalDateTime4;
E. Oturum zaman dilimini varsayılan olarak sıfırla
Aşağıdaki örnek, oturumu örneğin veya platformun varsayılan zaman dilimine sıfırlar.
SET TIME ZONE local;
GO
SELECT CURRENT_TIMEZONE() AS CurrentTimeZone,
CURRENT_TIMEZONE_ID() AS CurrentTimeZoneId,
SYSDATETIMEOFFSET() AS CurrentDateTimeOffset,
SYSDATETIME() AS CurrentLocalDateTime2,
GETDATE() AS CurrentLocalDateTime3,
CURRENT_TIMESTAMP AS CurrentLocalDateTime4;
F. Sistem görünümleri her zaman örnek zaman dilimini döndürür
Zaman değerlerini içeren sistem görünümleri, oturum veya veritabanı zaman diliminden bağımsız olarak, her zaman örnek zaman dilimini döndürür.
SELECT *
FROM sys.dm_exec_sessions;
SELECT *
FROM sys.dm_exec_query_stats;
SELECT *
FROM sys.objects;