E erciz Medlem sedan maj 2001 1 826 inlägg Frågan 17 maj 2011 09:30 #1 Jag har en kolumn "created" med typen "timestamp" som jag vill hämta från en PostgreSQL-databas. Som standard så blir det formaterat med datum och tid, men jag skulle vilja ha det i rena millisekunder.
Kör jag
SELECT created FROM mytable;
så får jag typ "2011-05-17 10:23:13.34" men jag vill ha det i formatet "23434554235".
Hur får jag fram timestamp i bara millisekunder från PostgreSQL?
S SPiN Medlem sedan mars 2000 7 896 inlägg Millisekunder? Jag tror du menar sekunder från 1970-01-01, alltså UNIX timestamp. En millisekund är ju en tusendels sekund.
För att få UNIX timestamp;
select
unix_timestamp(`created`) as unix_time
from
`your_table`
Edit
Oops, var lite snabb - ovanstående är för MySQL. För PostgreSQL;
select
date_part('epoch', timestamp(created))
from
your_table
E erciz Medlem sedan maj 2001 1 826 inlägg
SPiN skrev:
Millisekunder? Jag tror du menar sekunder från 1970-01-01, alltså UNIX timestamp. En millisekund är ju en tusendels sekund.
För PostgreSQL;
select
date_part('epoch', timestamp(created))
from
your_table
Hm, jag får syntax-fel vid timestamp(created), finns den funktionen eller saknas det nån parameter?
Men ja, vill nog ha antalet millisekunder från 1970, tror att java och javascript använder det formatet.
E erciz Medlem sedan maj 2001 1 826 inlägg select date_part('epoch', created) FROM mytable
blir hyffsat får fram tidstämpeln i sekunder och 5 decimaler.
T.ex. 1305621628.87694
Finns det nåt sätt att få fram det i hela millisekunder sen 1970?
Vill alltså ha ut 1305621628876 från värdet ovan.
E erciz Medlem sedan maj 2001 1 826 inlägg Löste det nu med:
select date_part('epoch',date_trunc('milliseconds', created))*1000 AS created from mytable;