O SQL Server fornece o
sys.time_zone_info
exibição de configuração em todo o servidor para retornar uma lista de fusos horários suportados. Você pode recuperá-los com um simples
SELECT
demonstração. Exemplo
A execução da instrução a seguir retorna todos os fusos horários com suporte.
SELECT * FROM sys.time_zone_info;
Isso retorna 139 linhas no meu sistema.
Você pode restringir os resultados com um
WHERE
cláusula. Se você não tem certeza do nome do fuso horário, você sempre pode usar o LIKE
cláusula com alguns caracteres curinga. SELECT * FROM sys.time_zone_info
WHERE name LIKE '%Europe%';
Resultado:
+--------------------------------+----------------------+--------------------+ | name | current_utc_offset | is_currently_dst | |--------------------------------+----------------------+--------------------| | W. Europe Standard Time | +02:00 | 1 | | Central Europe Standard Time | +02:00 | 1 | | Central European Standard Time | +02:00 | 1 | | E. Europe Standard Time | +03:00 | 1 | +--------------------------------+----------------------+--------------------+
Se você está se perguntando o que o
is_currently_dst
coluna é para, ela especifica se o fuso horário está ou não observando o horário de verão (1
se for, 0
se não for). Portanto, você também pode fazer uma pesquisa para ver quais fusos horários estão observando o horário de verão.
SELECT
name,
current_utc_offset
FROM sys.time_zone_info
WHERE is_currently_dst = 1;
Aqui está o resultado que obtive no momento em que executei esta consulta:
+--------------------------------+----------------------+ | name | current_utc_offset | |--------------------------------+----------------------| | Aleutian Standard Time | -09:00 | | Alaskan Standard Time | -08:00 | | Pacific Standard Time (Mexico) | -07:00 | | Pacific Standard Time | -07:00 | | Mountain Standard Time | -06:00 | | Central Standard Time | -05:00 | | Easter Island Standard Time | -05:00 | | Eastern Standard Time | -04:00 | | Haiti Standard Time | -04:00 | | Cuba Standard Time | -04:00 | | US Eastern Standard Time | -04:00 | | Turks And Caicos Standard Time | -04:00 | | Atlantic Standard Time | -03:00 | | Pacific SA Standard Time | -03:00 | | Newfoundland Standard Time | -02:30 | | Greenland Standard Time | -02:00 | | Saint Pierre Standard Time | -02:00 | | Mid-Atlantic Standard Time | -01:00 | | Azores Standard Time | +00:00 | | GMT Standard Time | +01:00 | | Morocco Standard Time | +01:00 | | W. Europe Standard Time | +02:00 | | Central Europe Standard Time | +02:00 | | Romance Standard Time | +02:00 | | Central European Standard Time | +02:00 | | Jordan Standard Time | +03:00 | | GTB Standard Time | +03:00 | | Middle East Standard Time | +03:00 | | E. Europe Standard Time | +03:00 | | Syria Standard Time | +03:00 | | West Bank Standard Time | +03:00 | | FLE Standard Time | +03:00 | | Israel Standard Time | +03:00 | | Iran Standard Time | +04:30 | | Cen. Australia Standard Time | +10:30 | | AUS Eastern Standard Time | +11:00 | | Tasmania Standard Time | +11:00 | | Lord Howe Standard Time | +11:00 | | Norfolk Standard Time | +12:00 | | New Zealand Standard Time | +13:00 | | Kamchatka Standard Time | +13:00 | | Chatham Islands Standard Time | +13:45 | | Samoa Standard Time | +14:00 | +--------------------------------+----------------------+
Você também pode obter o fuso horário do seu próprio servidor e cruzá-lo com a entrada relevante nesta lista, se desejar.