Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: TIMESTAMP setiny vteřiny

Ostatní jazyky SQL SQL a databáze TIMESTAMP setiny vteřiny

Aktivity (1)
Avatar
jan.vencl
Redaktor
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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět 30.9.2014 9:58
Avatar
jan.vencl
Redaktor
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.