Преди останалата част от моя отговор, бих искал да препоръчам точно сега, че ако имате някаква възможност да промените приложението си, за да използва UTC, това ще ви спести много мъка сега и в бъдеще.
Въпреки това, като се има предвид контекста на вашия въпрос, предполагам, че това не е опция и че адаптирате система, предназначена да използва MySQL в традиционна сървърна среда, където можете просто да промените часовата зона и че има кодова логика, която очаква тази часова зона и не може лесно да се адаптира за използване на UTC.
Но ако наистина имате нужда да го съхранявате като PST, прочетете нататък.
Прав сте, че mySql ще използва часовата зона на сървъра за съхранение на времеви марки по подразбиране, но предположението ви, че екземплярите на RDS имат часовите зони, зададени въз основа на региона на AWS, в който са стартирани, е неправилно - всички RDS екземпляри се стартират с часовата им зона, зададена като UTC, и тази конфигурация може не се променя:
Така че единствената ви възможност е да зададете часовата зона за всяка връзка, която вашето приложение прави към екземпляра на базата данни на PST. Можете да използвате SET SESSION time_zone = 'PST'
заявка за изпълнение във всяка връзка, която приложението прави, като следвате двете стъпки намерени тук
:
-
Създайте следната съхранена процедура (UTC-8 е PST):
-
Свържете се с вашия екземпляр и изпълнете следната команда:
-
Може да се наложи да предоставите
EXECUTE
разрешения за потребителите, които ще се свързват с базата данни, в противен случай може да получите грешка при връзката:
Сега всяка заявка, изпълнена спрямо вашия RDS екземпляр от който и да е клиент, трябва да използва PST, без да променя логиката на приложението и без да е необходимо да актуализирате каквито и да е по-рано съхранени времеви печати в базата данни.