Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:Azure SQL Database
SQL adatbázis a Microsoft Fabric-ben
Az SET TIME ZONE Transact-SQL (T-SQL) utasítást az időzóna értékének beállítására használják Azure SQL Database-ben, valamint SQL adatbázist Microsoft Fabric-ben.
Note
SET TIME ZONEnem támogatja az SQL Server vagy az Azure SQL Managed Instance.
SET TIME ZONE felülírja az adatbázis vagy instance szintű időzóna értékét. Az időzóna értéke megegyezik az nameoszloptal a sys.time_zone_info rendszernézetben.
Transact-SQL szintaxis konvenciók
Szemantika
SET TIME ZONE { 'time_zone_value' | 'LOCAL' }
[ ; ]
Arguments
{ 'time_zone_value' | 'HELYI' }
Megadja az időzóna értéket.
time_zone_valuenvarchar(128), alapértelmezett értéke LOCAL.
Ha LOCAL meg van jelölve, akkor a jelenlegi alapértelmezett időzóna értéke az ülés eredeti időzóna értékére van állítva, amely lehet adatbázis-scope-opció vagy az instance default.
A telepített időzónák listája látható a sys.time_zone_info rendszer nézetén keresztül.
Remarks
Ha SET TIME ZONE T-SQL modulban vagy dinamikus SQL batchben használják, akkor a változás csak a modul vagy a dinamikus SQL batch végrehajtási körére vonatkozik. Miután a modul vagy dinamikus SQL batch végrehajtása befejeződik, a session időzóna beállítása visszatér a modul vagy dinamikus SQL batch végrehajtása előtti időzóna értékére.
Permissions
A nyilvános rögzített adatbázis szerepkör tagságát igényli.
Példák
A cikkben szereplő kódminták a AdventureWorks2025, AdventureWorksDW2025, vagyis AdventureWorksLT2025 mintaadatbázist használják, amelyet letölthetsz az Azure Data SQL Samples Repository GitHub repository-jából.
A. Tekintse meg az aktuális időzóna beállításokat
A következő lekérdezés adja vissza a szerver nevét, adatbázis nevét és a termékverziót.
SELECT @@servername AS ServerName,
DB_NAME() AS DatabaseName,
SERVERPROPERTY('ResourceVersion') AS ProductVersion;
A következő lekérdezés az érvényes időzónákat sorolja fel, az UTC elolásuk szerint sorrendben.
SELECT *
FROM sys.time_zone_info
ORDER BY current_utc_offset;
A következő lekérdezés az adatbázis által megadott konfiguráció aktuális értékét TIME_ZONE ellenőrzi.
SELECT *
FROM sys.database_scoped_configurations
WHERE name = 'TIME_ZONE';
Ha az időzóna nincs adatbázis szinten beállítva, akkor az alapértelmezett időzónát választja. Az instance időzóna beállítása a platformtól függ:
| Platform | Leírás |
|---|---|
| Windows | Az alap operációs rendszer időzónája. |
| Linux | Az SQL Server folyamat időzónája, amit a TZ környezeti változóval lehet beállítani. |
| Azure SQL Database | Az SQL instance időzónája, ami mindig UTC, és ma nem lehet megváltoztatni. |
| Azure SQL Managed Instance | Az SQL instance időzónája, amely alapértelmezés szerint UTC, és ma csak az instance létrehozásakor módosítható. |
B. Állítsuk be az időzónát az adatbázis szintjén
A következő példa az adatbázis időzónát Új-Zélandi Standard Time-ra állítja be, majd áttekinti az érintett függvényeket.
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. Állítsd vissza az adatbázis-alapú időzónát az alapértelmezett állapotra
A következő példa visszaállítja az adatbázis időzónáját , majd LOCALáttekinti az érintett függvényeket.
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. Állítsd be az időzónát az ülés szintjére
A következő példa a session időzónát a csendes-óceáni standard időre, majd India standard időre állítja, és minden változtatás után áttekinti az érintett függvényeket.
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. Állítsd vissza az ülés időzónáját az alapértelmezettre
A következő példa visszaállítja a szektumot az instance vagy platform alapértelmezett időzónára.
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. A rendszernézetek mindig visszaadják az instance időzónát
A rendszernézetek, amelyek időértékeket tartalmaznak, mindig visszaadják az instance időzónát, függetlenül az ülés- vagy adatbázis-időzónától.
SELECT *
FROM sys.dm_exec_sessions;
SELECT *
FROM sys.dm_exec_query_stats;
SELECT *
FROM sys.objects;