Nevím, jak jiné databáze, ale typ DATATIME v INFORMIXU má pro pole vteřin rozsah 0-61 (dříve se Země točila rychleji, tak se dokonce občas přidávaly dvě přestupné vteřiny).
Jinak ty přestupné vteřiny jsou evidovány a systém by měl správně ukazovat čas i zpětně a stejně tak by je měl uvažovat při počítání počtu vteřin mezi dvěma časovými údaji. Tedy by měl spočítat, že rozdíl mezi 2015-07-01 00:00:01 a 2015-06-30 23:59:59 jsou tři vteřiny a ne dvě, jak by naivně člověk čekal.
Může vám to připadat malicherné, ale když si astronomové nasměrují dalekohled na stejné místo, jak před deseti lety, a systém jim tam hodí časový údaj o pár vteřin vedle, tak se koukaj někam úplně jinam, než chtěli. Stejně tak třeba GSM vás kvůli zapomenuté přestupné vteřině pošle o stovky kilometrů jinam. A podobně jsou na přesných časech a časových rozdílech závislé spousty oborů a aplikací.
> dříve se Země točila rychleji, tak se dokonce občas přidávaly dvě přestupné vteřiny
Ne.
> Jinak ty přestupné vteřiny jsou evidovány a systém by měl správně ukazovat čas i zpětně a stejně tak by je měl uvažovat při počítání počtu vteřin mezi dvěma časovými údaji.
Tohle mi na celém tom principu přijde nejdebilnější. Přestupné sekundy se vyhlašují něco jako necelý rok dopředu, takže výsledkem je, že 1) systém co je chvíli offline se o ní nedozví a pak to dělá bordel, 2) nejde říct, kolik hodin bude za rok, protože tam mužná někdo přidá přestupnou sekundu a možná ne.
Podle mě tyto dva problémy za to, že si můžeš spočítat, kde je Slunce na daném poledníku, nestojí. Ujede to asi o pět [časových] minut za tisíc let. Pokud se do té doby lidstvu podaří lítat na jiné planety, tak stejně bude potřeba časový systém úplně změnit.
> Stejně tak třeba GSM vás kvůli zapomenuté přestupné vteřině pošle o stovky kilometrů jinam.
1) GSM je ten systém pro mobily. Ten má čas kvůli synchronizaci BTSek a poloha může ujet maximálně o 35 km, pak se síť rozpadne :)
2) 1 sekundy je 300'000 km, ne jenom stovky
3) Asi jsi měl na mysli GPS. Tam se právě kvůli těmto problémům používá čas bez přestupných sekund.
Ty přestupné sekundy se přidávají nebo ubírají tehdy, když se ta sekunda nastřádá. Nikdo vševědoucí všemohoucí nám to bohužel předem nehlásí, jak to plánuje, a spočítat to nedokážem.
Přestupná sekunda se protokolem NTP ohlašuje předem (myslím, že v řádu hodin), takže systém, co je chvíli (=cca rok a více) offline a připojí se před přestupnou sekundou má šanci zjistit, co se bude dít. Pokud se připojí až po ní, sesynchronizuje si přece nejprve čas a teprve pak bude provádět akce, které jsou na přesném čase závislé.
> 1
A já jsem navrhoval, že než mít nedeterministický (!) čas založený na náhodných výkyvech Země by bylo nejlepší těch pár minut za tisíciletí neřešit.
> 2
A nebo bere čas z GPS přijímače, který předem přestupnou sekundu oznámit neumí (zažil jsem, profesionální navigační systém). Samozřejmě můžeme prohlásit, že je to chyba protokolu/implementace. Mně ale přijde, že tohle protokol naprosto zbytečně zesložiťuje.
Podobných, z pohledu počítačů zbytečných, komplikací, se řeší spoustu. Převody mezi dvojkovou a desítkovou soustavou, převody na různé lidské jazyky, vstup z klávesnice, zobrazování na displeji... Pro počítače by bylo mnohem jednodušší, kdyby se člověk jako každý normální počítač připojil na sběrnici a komunikoval strukturovanými zprávami ve dvojkové soustavě. Jenže místo toho drtivá většina lidí chce, aby se počítače přizpůsobily jim. Takže se místo komunikace děrnými štítky naučily získávat vstup z klávesnice a zobrazovat jej lidským jazykem na monitoru, později zvládly i české háčky a čárky. A dnes už se učí rozpoznávat hlasový vstup a syntetizovat hlasový výstup. No a také se naučily počítat čas v sekundách, minutách, hodinách, dnech, měsících a rocích. Postupně zvládly záludnosti jako přestupné roky, pak i přestupné roky na konci století a od roku 2000 zvládají i ty na konci čtyřsetletí. No a tu přestupnou vteřinu se také postupem času naučí. Zkrátka postupně zvládají čím dál víc komplikací z lidského světa. On je totiž nakonec každý ajťák příliš ješitný na to, aby veřejně vystoupil s tím, že přestupná vteřina je pro něj příliš složitá, a jestli by nebylo možné jí zrušit.
Systém GPS s tím sice počítá a systém jako takový se s tím vypořádá, ale v u praktických implementací problémy skutečně nastat mohou. Když se naposledy přidávala přestupná sekunda (léto 2012), navigace mi pak ještě skoro týden ukazovala polohu necelých 400 metrů západně od místa, kde jsem skutečně byl (což odpovídá přibližně 370 metrům, o které se Země otočí za jednu sekundu na příslušné rovnoběžce). Podle supportu stačilo provést update informací o poloze satelitů ("quick gps fix"), jenže jsem byl bohužel zrovna ten týden na dovolené, takže to nešlo.