Я создаю пару хранимых процедур, чтобы сохранить некоторые данные в моей базе данных разработки, просто чтобы увидеть, что происходит что-то странное.
Во время первых вызовов, около 2 или 3, запись регистрируется по моему местному времени.Однако через пару минут, когда я снова позвонил в SP, я понял, что записи регистрируются с разницей -03: 00: 00 по моему местному времени.
Например:
Я запускаю SP, запись зарегистрирована со временем 11: 19
Я снова запускаю SP, запись регистрируется со временем 11: 19
Я снова запускаю SP, но теперь запись регистрируется со временем 8: 20
И после этого все записи регистрируются с -3 часами из моего локальноговремя.
Кто-нибудь когда-либо испытывал это?Я не уверен, что могло произойти между этими вызовами, насколько я знаю, никакая другая процедура не должна была быть вызвана.
С уважением и заранее спасибо.
Edit (добавление кода)
Это код функции, которую мы используем вместо now ()
CONVERT_TZ(NOW(), 'UTC', 'America/New_York')
Вызов ее один раз возвращает ожидаемый результат, пару минут / вызовыпозже, в другое время.
Решение (на случай, если кто-нибудь пройдет через это)
Не знал, что первая временная метка таблицы, если не указано иное, будетпо умолчанию будет DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
.Как и при обновлении, это переопределило бы нашу пользовательскую функцию для определения даты и использования даты без метки времени, следовательно, разница между датами.
Документы для справки: https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html