#mysql #activerecord
#mysql #activerecord
Вопрос:
Я использую MySQL. У меня есть модель ActiveRecord, которая ведет себя следующим образом:
record = MyModel.new(some_attrs)
record.save
record.created_at.utc.iso8601(6) #=> "2019-03-07T21:46:19.255634Z"
record.reload
record.created_at.utc.iso8601(6) #=> "2019-03-07T21:46:19.000000Z"
Почему он теряет всю субсекундную точность при перезагрузке?
Комментарии:
1. MySQL поддерживает
2019-03-07 21:46:19.255634
в DATETIME (6) просто отлично, он не может обрабатывать эти2019-03-07T21:46:19.255634Z
форматы. Смотрите example1 и example2 ..ISO8601
сT
иZ
в формате не будет работать на MySQL..
Ответ №1:
Я предполагаю, что начальная временная метка создается ActiveRecord, поскольку в MySQL нет RETURNING
предложения, указывающего, какое значение он фактически вставил. Но после перезагрузки он использует временную метку с меньшей точностью, которую фактически хранит MySQL.