2013-07-01 10 views
5

Ho un Oracle Table chiamato EVENT_TABLE_T. Ha una colonna chiamata LAST_UPDATE_DT. Un valore di esempio da questa colonna è: 01-JUL-13 11.20.22.37448900 AM. Ci sono oltre 700 righe che hanno lo stesso valore di timestamp. Desidero aggiornare questo valore a 45 giorni prima di questa data, utilizzando un'istruzione SQL. Ad esempio, 01-JUL-13 11.20.22.37448900 AM, dopo la mia analisi matematica, dovrebbe essere: 15-May-13 11.00.00...... (esattamente 45 giorni). Se questo è successo, vorrei applicare un aggiornamento su un valore diverso in LAST_UPDATE_DT che riflette un valore che risale a 46 giorni.Come aggiornare il valore di Oracle Timestamp dal corrente a un timestamp dal passato

Ciò che spero di ottenere ponendo questa domanda è di essere in grado di apprendere le basi delle date e dei timestamp Oracle e applicarle al mio lavoro di elaborazione batch. Mi piacerebbe essere in grado di eseguire questo aggiornamento SQL istruzione da Oracle SQL Developer e anche da dentro un Java PreparedStatement.

Grazie in anticipo per il vostro aiuto.

risposta

14

Si può semplicemente sottrarre un intervallo di tempo dal timestamp.

UPDATE EVENT_TABLE_T 
SET LAST_UPDATE_DT = last_update_dt - interval '45' day 
WHERE LAST_UPDATE_DT = TO_TIMESTAMP('01-JUL-2013 11:20:22:37448900','DD-MON-YYYY HH24: MI:SS:FF') 
+0

Esattamente quello che volevo. La risposta di Ravi mi spinse nella giusta direzione e Arban completò la tua risposta. – ilango

2

provare qualcosa di simile:

UPDATE EVENT_TABLE_T 
SET LAST_UPDATE_DT = TO_TIMESTAMP('15-MAY-2013 11:00:00:00','DD-MON-YYYY HH24:MI:SS:FF') 
WHERE LAST_UPDATE_DT = TO_TIMESTAMP('01-JUL-2013 11:20:22:37448900','DD-MON-YYYY HH24: MI: SS:FF') 

simile per l'aggiornamento che si desidera per tornare indietro di 46 giorni.

Verificare la presenza di errore sintattico eventuali

+0

L'istruzione funziona per impostare (aggiornare) la data corrente in una certa data nel passato. Non esattamente quello che volevo, ma ho ottenuto un altro importante concetto dalla tua risposta. Apprezzato. – ilango

Problemi correlati