残りの回答の前に、UTCを使用するようにアプリケーションを変更するオプションがある場合は、現在および将来、多くの苦痛を軽減することを今すぐお勧めします。
ただし、質問のコンテキストを考えると、これはオプションではなく、タイムゾーンを変更できる従来のサーバー環境でMySQLを使用するように設計されたシステムを採用していること、およびコードロジックが存在することを前提としています。このタイムゾーンを想定しており、UTCを使用するように簡単に適応させることはできません。
ただし、PSTとして保存するために本当に必要な場合は、読み進めてください。
mySqlがデフォルトでタイムスタンプストレージにサーバーのタイムゾーンを使用することは正しいですが、RDSインスタンスのタイムゾーンが起動されたAWSリージョンに基づいて設定されているという仮定は正しくありません -すべてのRDSインスタンスは、タイムゾーンをUTC、に設定して起動され、この設定では次のことができます。変更しない:
したがって、唯一のオプションは、アプリケーションがデータベースインスタンスに対して行う各接続のタイムゾーンをPSTに設定することです。 SET SESSION time_zone = 'PST'
を使用できます ここにあります
の2つの手順に従ってアプリケーションが行うすべての接続で実行するクエリ :
-
次のストアドプロシージャを作成します(UTC-8はPSTです):
-
インスタンスに接続し、次のコマンドを実行します:
-
EXECUTE
を付与する必要がある場合があります データベースに接続するユーザーへのアクセス許可。そうしないと、接続エラーが発生する可能性があります:
これで、クライアントがRDSインスタンスに対して実行するすべてのクエリは、アプリケーションロジックを変更したり、データベースに以前に保存されたタイムスタンプを更新したりすることなく、PSTを使用する必要があります。