Antes do restante da minha resposta, gostaria apenas de recomendar agora que, se você tiver alguma opção de alterar seu aplicativo para usar o UTC, isso economizará muito sofrimento agora e no futuro.
No entanto, dado o contexto da sua pergunta, estou assumindo que isso não é uma opção e que você está adaptando um sistema projetado para usar o MySQL em um ambiente de servidor tradicional, onde você pode apenas alterar o fuso horário e que há lógica de código que espera esse fuso horário e não pode ser facilmente adaptado para usar o UTC.
Mas se você realmente precisa armazenar como PST, continue lendo.
Você está certo de que o mySql usará o fuso horário do servidor para armazenamento de carimbo de data/hora por padrão, no entanto, sua suposição de que as instâncias do RDS têm seus fusos horários definidos com base na região da AWS em que são executadas está incorreta - todas as instâncias do RDS são iniciadas com seu fuso horário definido como UTC, e essa configuração pode não ser alterado:
Portanto, sua única opção é definir o fuso horário em cada conexão que seu aplicativo faz com a instância do banco de dados para PST. Você pode usar o
SET SESSION time_zone = 'PST'
query para executar em cada conexão que um aplicativo faz seguindo as duas etapas encontradas aqui
:-
Crie o seguinte procedimento armazenado (UTC-8 é PST):
-
Conecte-se à sua instância e execute o seguinte comando:
-
Você pode precisar concederEXECUTE
permissões para os usuários que se conectarão ao banco de dados, caso contrário, você poderá receber um erro de conexão:
Agora, todas as consultas executadas em sua instância do RDS por qualquer cliente devem usar o PST sem modificar nenhuma lógica do aplicativo e sem precisar atualizar nenhum registro de data e hora armazenado anteriormente no banco de dados.