Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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: TIMESTAMP setiny vteřiny

Aktivity
Avatar
jan.vencl
Tvůrce
Avatar
jan.vencl:30.9.2014 9:30

Ahoj, potřebuju konvertovat dlouhou timestamp, kterou mi generuje jedna služba na serveru.

příklady této timestamp:
1406896195458
1406896201539
1406896234237

Tuto hodnotu potřebuji konvertovat, na standartní formát data v mysql.
funkce:

FROM_UNIXTIME()

vrací hodnotu null.
Je na to nějaká finta jak překonvertovat čas i na setiny? Děkuji

 
Odpovědět
30.9.2014 9:30
Avatar
Tukmak
Člen
Avatar
Odpovídá na jan.vencl
Tukmak:30.9.2014 9:58

Ahoj, pokud vím, tak mysql nepracuje se sekundami, takže bys buď musel ukládat timestampy tak jak jsou jako integer a konvertovat je na straně serveru při použití. A nebo pokud ty milisekundy nepotřebuješ (jako že předpokládám, že ano), tak by stačilo useknout poslední tři čísla z timestampy a pak už by šli v mysql zkonvertovat. Nic jiného mě momentálně nenapadá.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
30.9.2014 9:58
Avatar
jan.vencl
Tvůrce
Avatar
jan.vencl:30.9.2014 10:21

Děkuju :) No tady se jedná o logování automatizovaného obchodního systému, takže milisekundy potřebuju tak to budu konvertovat v nějakém jiném prostředí

 
Nahoru Odpovědět
30.9.2014 10:21
Avatar
shaman
Člen
Avatar
shaman:13.2.2015 17:28

timestamp ma 10 znakov. Ty mas 13, to znamena ze tam mas aj milisekundy.

Predpokladam ze ti tieto timestampy generuje tvoj obchodny system a chces ich ukladat do MYSQL:

INSERT INTO logger VALUES ($log_id, $log_text, FROM_UNIXTIME($timestamp,"%Y-%m-%d %H:%m:%s:%f")

Kedze mySQL standardne neuklada milisekundy, budes musiet predtym zmenit TIME, DATETIME alebo TIMESTAMP format aby to ukladal. Napr:

CREATE TABLE logger( time TIME(3), datetime DATETIME(3), timestamp TIMESTAMP(3) );

Cislo v zatvorke znamena potrebujem 3 milisekundove cislice.

Dalsia moznost je ukladat to v INTEGER(13) poli a potom to spracuvat v PHP cez nejaku funkciu ktora ti to cislo poludsti.

Nahoru Odpovědět
13.2.2015 17:28
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
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.