не прав?
Нет. Величина одна - правила сложения разные. Причём, timestamptz, а не interval
'3600second':: interval или '60minute'::interval или '1hour'::interval и при некоторых граничных условиях это могут быть разные величины😜 я не прав?
ок, объяснить можете?
А что тут объяснять? interval — это тип для интервалов времени, и, с учётом: Technically, PostgreSQL does not use UTC because leap seconds are not handled Час — это всегда час. Ну и технически: Internally interval values are stored as months, days, and microseconds. Поэтому такую разницу просто невозможно было бы там представить. А правила сложения (timestamptz +- interval) и вычитания timestamptz — совсем другое дело.
Не соглашусь! Да, сейчас это одно и то жэ. Поскольку нет полной поддержки UTC. Но если сделают — можэт быть разным (хотя бы при некоторых настройках). Так что лучшэ по возможности думать, и писать час там, где нужэн час.
Там человек сравнивал абстрактные интервалы между собой. Думаю, ничего не может произойти такого, что нарушит равенство абстрактных интервалов.
> Да, сейчас это одно и то жэ. Вот именно. > Но если сделают — можэт быть разным (хотя бы при некоторых настройках). Что очень вряд ли произойдёт. См., хотя бы: https://dba.stackexchange.com/a/105829 (и по ссылкам). Ну и "сломать" вообще все приложения, которые работали с датой/временем, в очередной major version — это не путь PostgreSQL. Т.е. "теоретизировать"-то можно... но к реальности всё это, к счастью, не относится. > и писать час там, где нужэн час. Дело хорошее (для понятности другим людям), но для PostgreSQL это ни на что не влияет.
Если фантазировать — можно же целиком изменить формат хранения интервалов, например начать хранить всё (годы, месяцы, дни, часы, минуты, секунды) отдельно, и соответственно изменить поведение операторов. Тогда повлияло бы... но этого не случится. ;)
Ммм. По-моему, Роман здесь https://t.me/pgsql/341950 очень наглядно показал, что абстрактные интэрвалы могут различать ся дажэ когда они вроде равны.
Равенство интервалов (оператор в PostgreSQL) основано просто на сравнении их номинальных (month = 30 days, day = 24 hours) длительностей. Поэтому поведение таких "равных" интервалов в вычислениях может отличаться.
Не, интервалы они и есть интервалы. А я показывал, что разница двух дат не всегда один и тот же интервал.
Обсуждают сегодня