и временем, но осталась какая-то неуверенность. Правильно ли я понимаю:
- Что в Postgres лучше работать с типом timestamp with time zone, чем without time zone?
- Что тот факт, что при сохранении даты в Postgres от использует локаль системы ни на что не влияет, так как typeorm все равно возвращает эту дату в формате utc.
- Что на бекенде работа идет только с датами в формате utc. Если клиент присылает другую то либо она преобразуется, либо бросается исключение?
1. Да 2. Постгрес в любом случае хранит utc + 0 3. Да, в utc +0 всегда удобнее работать
Сервер всегда должен работать с utc в рамках бд Если нужно иметь «персонализацию» по локали - бери ее из запроса или храни где-то вместе с сессией А так когда ты клиенты передаешь utc время, клиент в зависимости от нужд может его отобразить в локальном времени
А, наверное когда я делаю select *, то для вывода даты он использует локаль, от туда и берутся +03 в зоне рядом со временем, для моей машины. А так значит в utc хранит
Да, где-то при выводе идёт преобразование в зону, которая установлена на сервере. А хранит всегда в 0 зоне
главное не забывать того что в postgresql.conf (должна timezone быть у всех одинаковой) если там timezone разные то (разные всмысле у тебя одна на локальной машине а не деве другая и на проде третья) при ряде запросов связанных с приведением дат и в целом с датами будут разные результаты
Обсуждают сегодня