Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obter uma lista de fusos horários com suporte no SQL Server (T-SQL)


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.