Oracle - Fetch data / ora in millisecondi dal campo DATA tipo di dati
Domanda
Ho last_update_date
definito come campo DATE
Voglio ottenere il tempo in millisecondi.
Attualmente ho:
TO_CHAR(last_update_date,'YYYY-DD-MM hh:mi:ss am')
Ma io voglio ottenere millisecondi pure.
Ho cercato su google un po 'e pensare campi DATE
non avranno millisecondi. solo i campi TIMESTAMP
farà.
C'è un modo per ottenere millisecondi? Non ho possibilità di cambiare il tipo di dati per il campo.
Nessuna soluzione corretta
Altri suggerimenti
campi data in Oracle conserverà i dati fino a un secondo in modo non v'è alcun modo per fornire qualcosa di più preciso di quello. Se si desidera una maggiore precisione, è necessario utilizzare un altro tipo, come TIMESTAMP.
Qui è un link ad un altro SO domanda per quanto riguarda la data di Oracle e la precisione di tempo.
Come dice RC, il tipo DATE supporta solo una granularità fino alla seconda.
Se la conversione in TIMESTAMP non è veramente un'opzione allora come circa l'aggiunta di un'altra colonna numerico che solo detiene i millesimi di secondo?
Questa opzione sarebbe più ingombrante da affrontare che una colonna timestamp ma potrebbe essere realizzabile se la conversione del tipo non è possibile.
In una situazione simile in cui non ho potuto modificare i campi di una tabella, (non poteva permettersi di 'rompere' software di terze parti), ma necessari inferiore al secondo precisione, ho aggiunto un 1: tavolo supplementare 1, e un dopo trigger di inserimento nella tabella originale per pubblicare il timestamp nella tabella supplementare.
Se avete solo bisogno di conoscere l'ordine di record che si aggiunge nello stesso secondo, si potrebbe fare la stessa cosa, solo con una sequenza come origine dati per il campo supplementare.