MySQL сохраняет неправильную метку времени - PullRequest
4 голосов
/ 14 июля 2020

Я использую Laravel 6. Я создал систему продажи билетов и успешно загрузил ее на сервер.

Я сохраняю время создания заявки в поле created_at в моей базе данных MySQL. Проблема в том, что иногда метка времени в поле created_at верна, а иногда она хранит неправильную метку времени.

Проблема странная, я не могу ее понять и не знаю, как отладить эту проблему.

Мой часовой пояс в Laravel config / app. php установлен как Asia / Kolkata

'timezone' => 'Asia/Kolkata',

Вот мой метод создания билета

$ticket_tracker = TICKET_TRACKER::create
        ([
            'ticket_no' => $ticket_number,
            'partner_id' => $partner_id,
            'team_id'   => $team_id,
            'priority_id'   => $priority_id,
            'opened_date'   => $opened_date,
            'created_by'   => $user_id,
        ]);

created_at поле не входит в приведенный выше код, так как Laravel сохраняет само время.

Структура таблицы

введите описание изображения здесь

После дальнейшего изучения проблемы я обнаружил, что MySQL хранит правильную временную метку, когда я создавал заявку для тестирования. Через несколько часов я создал другой билет, который сохранен с правильной меткой времени, но метка времени моего старого билета изменилась сама (я не знаю, как это произошло).

Также я обнаружил, что мой глобальный часовой пояс и часовой пояс сеанса это система, которая является UT C, я думаю, потому что мое текущее время на 5,30 часа опережает отметку времени, отображаемую этой командой CURRENT_TIMESTAMP

1 Ответ

1 голос
/ 14 июля 2020

Поскольку вы не предоставляете значения created_at и updated_at по вашему запросу, значения генерируются на стороне MySQL в соответствии с MySQL временем сервера и часовым поясом. Для проверки получить MySQL текущее время используйте следующий простой запрос:

SELECT @@global.time_zone, @@session.time_zone, CURRENT_TIMESTAMP;

Если CURRENT_TIMESTAMP не соответствует вашему часовому поясу, вы можете изменить настройки часового пояса, следуя документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...