IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: mysql - uložení unixtimestampu

Aktivity
Avatar
Lu Kiss
Člen
Avatar
Lu Kiss:6.5.2019 15:21

Ahoj,
drobný dotaz. V jakém formátu by jste v MySql (5.7) ukládadli unixový timestamp který je např:
'1592037639.29625' a je třeba se snažit o zachování přesnosti?

Děkuji za tipy :).

Zkusil jsem: 1. jako varchar a v aplikaci si to převeduna float a poté na datetime
2. Jako decimal (15,5)
3. jako bignit 159203763929625 = 1592037639.29625 * 10000
4. nějak jinak.

Chci docílit: Nejlepeší upůsob pro uchování unix timestampu v mysql db

 
Odpovědět
6.5.2019 15:21
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.5.2019 8:00

https://dev.mysql.com/…atetime.html
DATE, DATETIME, and TIMESTAMP
https://dev.mysql.com/…e-types.html
DATE, TIME, DATETIME, TIMESTAMP, and YEAR

DATETIME        '0000-00-00 00:00:00'
TIMESTAMP       '0000-00-00 00:00:00'
 
Nahoru Odpovědět
7.5.2019 8:00
Avatar
Odpovídá na Lu Kiss
Tomáš Novotný:7.5.2019 8:45

Ahoj,
za desetinnou tečkou jsou uvedeny mili a mikrosekundy před klasicky datum a čas. Spíše záleží na tobě, jakou přesnost potřebuješ uchovávat. Pro většinu použití dle mne dostačují sekundy.
Jak uchovávat se odvíjí od toho jak s daty pracuješ a kolik jich je. Pokud relativně málo, bude se ti lépe pracovat s formátem DATE TIME. Pokud bys měl miliony záznamů, třeba nějaké logy tam by za zvážení stál spíše ten INT případně oba, aby nebylo potřeba tolikrát konverze.
Podobně problém jsem řešil u IPv4, pro kterou v databázi nebyl vhodný datatyp. Záznamů bylo řádově statisíce. Takže pro uživatele human readable format ve varchar, pro interní potřeby kódu int. Existují sice funkce pro převody jak v DB tak třeba v PHP, ale to se mi na dané databázi a struktuře výkonově neosvědčilo.

Nahoru Odpovědět
7.5.2019 8:45
∞ ... the exact amount of possibilities how to deal with the situation ... so by calm, your solution is one of many
Avatar
Lu Kiss
Člen
Avatar
Lu Kiss:7.5.2019 18:23

Nakonec jsem to vyřešil jako biginit. Bylo potřeba pracovat i s mikrosekundami (nudné školní úlohy :D). V reálu bych se samozřejmně vystačil i se sekundami, takže bych na ně ten DT použil. :)

 
Nahoru Odpovědět
7.5.2019 18:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.