Ho la seguente rappresentazione di stringa di un timestamp in mia tabella Hive:stringa Converti in timestamp Hive
20130502081559999
ho bisogno di convertirlo in una stringa in questo modo:
2013-05-02 08:15:59
ho provato seguente ({codice} >>> {risultato}):
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmss')) >>> 2013-05-03 00:54:59
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssMS')) >>> 2013-09-02 08:15:59
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssMS')) >>> 2013-05-02 08:10:39
Conversione in un timestamp e poi unixtime sembra strano, quello che è il puntello è il modo di fare questo?
EDIT L'ho capito.
from_unixtime(unix_timestamp(substr('20130502081559999',1,14), 'yyyyMMddHHmmss')) >>> 2013-05-02 08:15:59
o
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssSSS')) >>> 2013-05-02 08:15:59
Ancora ... c'è un modo migliore?
Il tuo codice sembra lasciar cadere i nanosecondi, c'è un modo per preservarlo –