Я пытаюсь установить CURRENT_TIMESTAMP в UTC прямо перед вставкой строки в БД. Из того, что я прочитал, вы можете сделать это для каждого соединения.MySQL для каждого часового пояса за соединение не заполняется CURRENT_TIMESTAMP правильно
Часовой пояс моего сервера EST (+5: 00).
я сделать следующее при отладке:
- ВЫБЕРИТЕ CURRENT_TIMESTAMP; Храните этого парня в использовании при отладке.
- SET TIME_ZONE = '-00: 00';
- SELECT CURRENT_TIMESTAMP; Храните этого парня в использовании при отладке.
- На данный момент я ожидаю, что время_соединения моей базы данных будет UTC.
- INSERT/UPDATE запись как обычный.
Затем я передаю две метки времени на свою страницу, чтобы посмотреть, что они собой представляют.
Первый дефолт EST: [CURRENT_TIMESTAMP] => 2016-12-15 14:01:52
Во-вторых, как установлено UTC по запросу: [CURRENT_TIMESTAMP] => 2016-12-15 19:01:52
Тем не менее, запись в БД имеет те CURRENT_TIMESTAMP из 2016-12-15 14:01: 52 (EST).
Не знаю, почему!
Я использую Sequel Pro для просмотра своей БД. Кажется, что Sequel Pro преобразует временные метки в локальное время.
Рекордные возвращается через SQL по желанию/ожидалось:
2016-12-15 19:46:50
сиквел про дисплеи:
2016-12-15 14:46:50
Итак ... это оставляет меня чуть расстройство с моим выбором DB в том, как он обрабатывает часовые пояса. Если кто-то думает, что это не актуальная проблема, дайте мне знать :)
Это имеет смысл. Однако я обнаружил, что проблема связана с приложением, в котором я использую для просмотра данных БД (Sequel Pro). Запись возвращается из инструкции SELECT, как и ожидалось, но в приложении по-разному отображается. – Gurnzbot