Opened 2 years 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), что дает текущее время с точностью до микросекунд.
![[MC-04 logo]](/mc-04/chrome/site/logo.png)