SQL Server ve Azure SQL: Kanada 2026 Saat Dilimi Rehberi
Kanada’da British Columbia, Alberta ve Manitoba’nın etkilenen bölgeleri 1 Kasım 2026’da yerel saatle 02:00’de saatleri geri almayacak, sırasıyla UTC−07:00, UTC−06:00 ve UTC−05:00 ofsetlerinde kalacak. Microsoft değişiklik için yeni Windows saat dilimlerini ve geçici çözümleri anlatan ara rehberler yayımladı. Aynı değişikliğin SQL Server (Windows ve Linux), Azure SQL Database ve Azure SQL Managed Instance tarafındaki karşılıkları, kullanılabilecek geçici tanımlayıcılar ve nihai bölgesel saat dilimine geçişin planlanması aşağıda.
Yeni saat dilimi henüz yoksa: geçici tanımlayıcılar
Yeni bölgesel saat dilimleri dağıtımınızda henüz yoksa, Windows için verilen ara rehberin SQL tarafına uyarlanmış karşılıklarını kullanabilirsiniz. Bu tanımlayıcılar açık SQL dönüşümlerinde, Azure SQL Database veya uygun Azure SQL Managed Instance veritabanı/oturum ayarlarında, eşleştirilmiş Linux yapılandırmasında ve yeni oluşturulan SQL Managed Instance örneklerinde işinize yarar. Var olan bir SQL Managed Instance’ta örnek düzeyindeki saat dilimi ayarı değiştirilemez.
| Etkilenen bölge | Mevcut SQL saat dilimi | Geçici SQL saat dilimi | 1 Kasım’dan itibaren gereken ofset | Nihai bölgesel saat dilimi |
|---|---|---|---|---|
| British Columbia’nın büyük bölümü | Pacific Standard Time | Yukon Standard Time | UTC−07:00 | British Columbia Standard Time |
| Alberta ve kendi rehberinin kapsadığı yerler* | Mountain Standard Time | Canada Central Standard Time | UTC−06:00 | Alberta Standard Time |
| Manitoba | Central Standard Time | Eastern Standard Time (Mexico) | UTC−05:00 | Manitoba Standard Time |
* Alberta rehberi, Alberta ile hizalanan güneydoğu BC yerleşimlerini ve Yellowknife ile Inuvik dahil etkilenen Northwest Territories konumlarını da kapsıyor. İlk satırdaki karşılığı British Columbia’nın tamamına uygulamayın.
Manitoba için Windows tarafındaki geçici çözüm, otomatik yaz saati ayarlaması devre dışı bırakılmış haliyle normal Eastern Standard Time kullanıyor. T-SQL’deki AT TIME ZONE ise böyle bir “DST ayarlamasını kapat” anahtarı sunmuyor; SQL tarafında bu yüzden, mevcut kurallarıyla mevsimsel değişiklik uygulamadan UTC−05:00 veren Eastern Standard Time (Mexico) tercih ediliyor. Normal Eastern Standard Time yazın UTC−04:00’e döner.
Seçtiğiniz tanımlayıcının hedef dağıtımda sys.time_zone_info görünümünde bulunduğunu doğrulayın. Bu geçici karşılıklar yalnızca gereken güncel ve gelecekteki ofsetleri karşılar, ilgili eyaletlerin tam geçmiş kurallarını yansıtmaz; geçmişe dönük dönüşümleri topluca değiştirmeyin. Bölgesel tanım desteklenmeye başladığında ürüne özgü doğru yöntemle o tanıma geçin.
SQL Server on Windows
SQL Server, yüklü Windows saat dilimlerini işletim sistemi kayıt defterinden okur; bu davranış sys.time_zone_info belgelerinde anlatılıyor. Windows üzerinde çalışan SQL Server için ayrı bir SQL Server ürün güncellemesi değil, ilgili Windows güncellemesi gerekir.
- İlgili Windows güncellemesini yükleyin.
- Sunucunun yerel saatinin etkilenen bölgeyi izlemesi gerekiyorsa, eyalet rehberlerine uyarak Settings > Time & language > Date & time altından yeni bölgesel saat dilimini seçin.
- Uygun yerlerde açık
AT TIME ZONEreferanslarını da güncelleyin.
Güncellemeyi yüklemek uygulama içindeki SQL ifadelerini kendiliğinden yeniden yazmaz, ABD ve Kanada için paylaşılan mevcut tanımlayıcıyı da yeni eyalete özgü tanımla eşdeğer hale getirmez.
SQL Server on Linux
SQL Server 2022 ve sonrası için “Configure the time zone for SQL Server on Linux” belgesini izleyin. Linux üzerindeki SQL Server, Linux/IANA saat dilimini T-SQL tarafından dahili olarak kullanılan bir Windows tanımlayıcısına eşler. Geçici seçimler için belgelenen eşleştirmeler şöyle:
| Etkilenen bölge | Linux/IANA tanımlayıcısı | SQL saat dilimi tanımlayıcısı |
|---|---|---|
| BC’nin büyük bölümü | America/Whitehorse | Yukon Standard Time |
| Alberta ve hizalı konumlar | America/Regina | Canada Central Standard Time |
| Manitoba | America/Cancun | Eastern Standard Time (Mexico) |
Eşleşen IANA saat dilimini SQL Server servisinin veya konteynerin TZ ortam değişkeninde ya da geçerli ana makine yapılandırması üzerinden tanımlayın. Ayarın yalnızca etkileşimli kabuğa değil SQL Server işlemine de ulaştığından emin olun, gerekiyorsa işlemi yeniden başlatın veya yeniden dağıtın. TZ değişkeni, /etc/localtime ve belgelenen diğer yapılandırma kaynaklarına göre önceliklidir.
Yalnızca Linux tzdata paketini güncellemenin SQL Server’ın Windows saat dilimi tanımlarını veya eşleştirmesini güncelleyeceğini varsaymayın. Daha eski sürümler için SQL Server 2019 ya da SQL Server 2017 belgelerindeki karşılık gelen adımları kullanın.
Azure SQL Database: veritabanı ve oturum düzeyinde ayar
Azure SQL Database’de genel önizleme aşamasındaki yerel saat dilimi desteği, yapılandırmayı veritabanı veya oturum düzeyinde yapmanıza izin veriyor. Manitoba örneği için iki seçenek var:
-- Persistent database default
ALTER DATABASE SCOPED CONFIGURATION
SET TIME_ZONE = 'Eastern Standard Time (Mexico)';
-- Alternatively, override just the current connection
SET TIME ZONE 'Eastern Standard Time (Mexico)';
Oturum düzeyindeki geçersiz kılma, veritabanı ayarının önüne geçer. SET TIME ZONE LOCAL komutu oturum geçersiz kılmasını kaldırır, saklı yordam veya dinamik SQL toplu işi içinde yapılan değişiklik de yalnızca o yürütmeyle sınırlı kalır. Normal bir GO toplu iş ayıracı oturum ayarını sıfırlamaz; kapsam ve kullanım ayrıntıları için SET TIME ZONE belgelerine bakın.
Ayar GETDATE(), SYSDATETIME() ve SYSDATETIMEOFFSET() gibi güncel saat fonksiyonlarını etkiler. Saklanmış değerleri dönüştürmez, açık AT TIME ZONE ifadelerini değiştirmez, sistem görünümlerindeki UTC zaman damgalarına da dokunmaz. Bölgesel tanımlayıcı kullanılabilir hale geldiğinde geçici ayarı uygulamanızın kullandığı kapsamda değiştirin. SET TIME ZONE komutu SQL Server’da desteklenmiyor, bunu da hesaba katın.
Azure SQL Managed Instance: ayar değil, geçiş planı
SQL Managed Instance’ta örnek düzeyindeki saat dilimi yalnızca oluşturma sırasında seçilebilir. Örnek saat dilimini değiştirmek isteyen, gereken geçici ya da nihai saat dilimiyle yeni bir örnek oluşturup iş yükünü oraya taşır.
Yerel saat dilimi desteğinin bulunduğu Always-up-to-date güncelleme ilkesini kullanan SQL Managed Instance örneklerinde aynı geçici saat dilimlerini veritabanı veya oturum kapsamında uygulamak için ALTER DATABASE SCOPED CONFIGURATION SET TIME_ZONE veya SET TIME ZONE kullanılabilir. Bu ayarlar, örneği taşımadan desteklenen güncel saat fonksiyonlarının etkin saat dilimini değiştirir. Örnek düzeyindeki saat dilimine ve SQL Agent zamanlamalarına ise dokunmaz; örnek genelinde bir saat dilimi değişikliği için aşağıdaki geçiş yaklaşımı gerekiyor.
| Geçiş seçeneği | Nasıl çalışır | Ödünleşim ve gereksinimler |
|---|---|---|
| Failover group | Sürekli replikasyon yapılır, eşitlenmenin ardından planlı ve kontrollü bir failover gerçekleştirilir. | Daha fazla kurulum gerektirir; geçiş kesintisi genelde daha kısadır. Örneklerin farklı bölgelerde olması ve aynı DNS bölgesini paylaşması gerekir. |
| Örnekler arası point-in-time restore | Veritabanları aynı bölgedeki yedek bir örneğe geri yüklenir, ardından uygulamalar yeni örneğe yönlendirilir. | Daha basittir; kesinti genelde daha uzundur. Sonraki işlemlerin atlanmaması için kaynak yazmaları ile son geri yükleme noktası koordine edilmelidir. Geri yükleme noktası zaman damgaları UTC olarak yorumlanır. |
İki yöntemde de örnek düzeyindeki bağımlılıkları yeniden oluşturmanız gerekir: oturum açma bilgileri (logins), master içindeki nesneler, SQL Agent işleri, kimlik bilgileri, bağlı sunucular, sertifikalar ve sunucu düzeyi yapılandırma. Eski örneği devre dışı bırakmadan önce uygulamaları ve iş zamanlamalarını doğrulayın.
Geçici saat dilimi kullanacaksanız iki geçişe hazırlanın
Nihai bölgesel saat dilimi henüz kullanılamıyorsa önce geçici saat dilimiyle yapılandırılmış bir örneğe taşınırsınız. Bölgesel saat dilimi kullanılabilir hale geldiğinde, bu kez o nihai saat dilimiyle oluşturulmuş başka bir örneğe ikinci kez geçersiniz. Failover group ile özgün bölgeye dönen bir akış şöyle görünür:
Original MI — Region 1 → Temporary-zone MI — Region 2 → Final-zone MI — Region 1
Servis güncellemesi, mevcut geçici örneğin seçilmiş saat dilimini değiştirmez; iki geçişi de, geçiş kesintilerini de bütçelendirin. Normal şartlarda failover group eşlerinin saat dilimleri eşleşmelidir, bu geçiş için bilinçli olarak oluşturulan uyumsuzluk dikkatli doğrulama gerektirir ve kalıcı yüksek kullanılabilirlik yapılandırması olarak önerilmez.
Yalnızca sorgu veya görüntüleme düzeltmesi gerekiyorsa
Örneğin yerel saatini değiştirmeden sadece bir sorgu çıktısını düzeltmek istiyorsanız açık dönüşüm yeterli:
SELECT SYSUTCDATETIME() AT TIME ZONE 'UTC'
AT TIME ZONE 'Eastern Standard Time (Mexico)' AS ManitobaLocalTime;
Bu yaklaşım yalnızca sorgu sonucunu değiştirir, SQL Agent zamanlamalarına veya örneğin GETDATE() davranışına karışmaz.
Özet kontrol listesi
- Etkilenen bölgeyi doğru belirleyin; Alberta rehberi BC’nin güneydoğusu ile bazı Northwest Territories konumlarını da kapsıyor.
- Windows’ta ilgili işletim sistemi güncellemesini uygulayın, gerekiyorsa sunucu saat dilimini değiştirin ve açık
AT TIME ZONEkullanımlarını gözden geçirin. - Linux’ta
TZdeğerinin SQL Server işlemine ulaştığını doğrulayın; tek başınatzdatagüncellemesine güvenmeyin. - Azure SQL Database’de veritabanı veya oturum kapsamında geçici saat dilimini uygulayın, bölgesel tanım geldiğinde değiştirin.
- SQL Managed Instance’ta örnek saat dilimi için geçiş planlayın; geçici saat dilimi kullanıyorsanız iki ayrı geçiş olacağını hesaba katın.
- Kullanacağınız her tanımlayıcıyı
sys.time_zone_infoüzerinden doğrulayın ve geçmiş dönüşümleri toptan değiştirmekten kaçının.
Kaynaklar ve İleri Okuma
- Canada’s 2026 time zone updates: guidance for Microsoft SQL (Umachandar Jayachandran, Azure SQL Dev Corner)
- Interim guidance for British Columbia time zone changes 2026
- Interim guidance for Alberta time zone changes 2026
- Interim guidance for Manitoba permanent DST 2026
- sys.time_zone_info (Transact-SQL) belgeleri
- SQL Server on Linux için saat dilimi yapılandırması (SQL Server 2022 ve sonrası)
- SQL Server 2019 on Linux saat dilimi yapılandırması
- SQL Server 2017 on Linux saat dilimi yapılandırması
- Azure SQL Database’de yerel saat dilimi desteği genel önizleme duyurusu
- SET TIME ZONE (Transact-SQL) belgeleri
- Azure SQL Managed Instance saat dilimlerine genel bakış
- SQL Managed Instance güncelleme ilkesi (update policy)
- SQL Managed Instance failover group yapılandırması
- SQL Server ve Azure SQL: SQLCon Europe 2026 Yenilikleri







Yorum gönder