Opened 16 months ago
#1219 new улучшение
Увеличить точность записываемого в БД времени
Reported by: | alx | Owned by: | Denis_N |
---|---|---|---|
Priority: | minor | Component: | БД изделий АДС |
Keywords: | Cc: |
Description
В БД помимо прочей информации хранятся отметки времени типа datetime
. В первую очередь это отметки записей в истории (history
), также хранится время создания заказов (в orders
).
Тип datetime представляет время с точностью до микросекунд. Однако при просмотре содержимого таблицы history
я заметил, что ни в одной записи нет дробных долей секунд! Я заглянул в несколько файлов, где добавляются записи в историю и обнаружил, что в поле date, как правило (если не всегда), записывается значение NOW()
. Проблема в том, что NOW()
без аргумента округляет текущее время до целого числа секунд! Из-за этого мы и теряем точность при учете времени, из-за чего уже несколько раз, насколько я помню, возникали различные "странности" (типа того что дефект был устранен раньше, чем обнаружен)...
Чтобы не терять точность при фиксации времени предлагаю при добавлении записей записывать в поле времени не NOW()
, а NOW(6)
, что дает текущее время с точностью до микросекунд.