Když se podíváte na následující tabulku, tak doufám, že se mnou souhlasíte, že jsou nadimenzovány více než dostatečně. (Time čas 8/12 bajtů 00:00:00 .. 24:00:00).
Jen pro zajímavost, nevíte, jak se tento datový typ vyrovná s přestunými sekundami, které se někdy před Novým rokem přidávají? Protože now() navrátí např. 2018-12-31 24:00:01, ale pak dopadla špatně extrakce času z timestampu..?
Beru dotaz zpět, dohledal jsem (https://www.postgresql.org/docs/11/functions-datetime.html):
timezone
The time zone offset from UTC, measured in seconds. Positive values correspond to time zones east of UTC, negative values to zones west of UTC. (Technically, PostgreSQL does not use UTC because leap seconds are not handled.)
:))) nicméně tedy nesouhlasím s tvrzením, že datové typy jsou nadimenzovány více než dostatečně :)... Na tisíciletí nám to sedí, falíruje nám tam jen ta sekunda :).
A co teprve oblíbené dotazy typu SELECT * FROM table WHERE eventDate BETWEEN 'xyz 00:00:00' AND 'xyz 23:59:59' ?
Je to samozřejmě důsledkem špatného návrhu, kdy se k definici intervalů používají z obou stran inclusivní hranice, na druhé straně SQL k tomu přímo svádí absencí inclusive-exclusive-between varianty.