| 1 | | Сама СУБД действительно поддерживает хранение микросекунд в DATETIME. |
| 2 | | |
| 3 | | Но в данном случае речь про конкретные поля в нашей схеме. Сейчас они объявлены как DATETIME без указания точности: |
| 4 | | |
| 5 | | history.date — DATETIME |
| 6 | | orders.datetime — DATETIME |
| 7 | | |
| 8 | | Для MySQL/MariaDB это соответствует точности 0 знаков дробной части секунды. То есть если в такое поле записать NOW(6), дробная часть секунд сохранена не будет. |
| 9 | | |
| 10 | | Чтобы #1219 имел смысл, нужно две части: |
| 11 | | |
| 12 | | 1. В схеме БД изменить поля на DATETIME(6). |
| 13 | | 2. В коде заменить запись времени с NOW() на NOW(6) там, где нужна повышенная точность. |
| 14 | | |
| 15 | | Именно поэтому был создан #1507: не потому что СУБД в принципе не умеет микросекунды, а потому что текущая схема конкретных полей их не сохраняет. |