Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL CONVERT_TZ()


Se isso resultar em null, as tabelas TZ não foram configuradas:
SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');

Se você não tiver as tabelas de fuso horário configuradas, poderá atualizar o fuso horário na tabela do usuário e fazer:
select utc_timezone() - interval user_timezone_offset_in_hours hour
from userinfo a
where user_id = 999;

No entanto, você ainda precisa de uma maneira de atualizar o fuso horário do usuário.

Se você estiver escrevendo isso para um aplicativo da Web, poderá obter o fuso horário via javascript, aqui está um artigo que descreve como (não tentei isso, mas parece que vai funcionar).

Um pouco de explicação em relação ao 'intervalo' acima ...

Uma das construções mais complicadas no MySQL é o uso do INTERVAL palavra-chave, melhor mostrada pelo exemplo (o valor numérico pode ser uma expressão ou o valor do campo)
select now() today, now() - interval 1 day yesterday;
+---------------------+---------------------+
| today               | yesterday           |
+---------------------+---------------------+
| 2011-05-26 13:20:55 | 2011-05-25 13:20:55 |
+---------------------+---------------------+

Você pode adicioná-los e subtraí-los da maneira que quiser, é por isso que nunca incomodar com as funções de adicionar/subtrair/converter data/hora
select now() a, now() - interval 1 day + interval 4 hour + interval 8 minute b;
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2011-05-26 13:24:16 | 2011-05-25 17:32:16 |
+---------------------+---------------------+

Você pode usar números negativos (deve ser bom para deslocamentos de fuso horário negativos) são os mesmos:
select now() - interval 1 month a, now() + interval -1 month b;
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2011-04-26 13:38:05 | 2011-04-26 13:38:05 |
+---------------------+---------------------+