Equivalente di PIC S9 con lunghezza 16 in Oracle
Domanda
Qual è l'equivalente di PIC S9 con la lunghezza 16 in Oracle? Lo voglio per la memorizzazione di timestamp.
Soluzione
In realtà, quando la gestione di timestamp in pro-COBOL, faccio la seguente:
77 H-DATETIME PIC X(19).
Nel Oracle punto di vista, io uso un oggetto DateTime
Quando voglio recuperare il valore, io uso il seguente:
TO_CHAR(A.TIMESTAMP, 'YYYY-MM-DD-HH24-MI-SS')
Quando voglio aggiornare il campo di Oracle, io uso il seguente:
TO_DATE(A.TIMESTAMP, 'YYYY-MM-DD-HH24-MI-SS')
Il formato che uso consente l'ordinamento e l'utilizzo di "SEARCH / searche ALL".
Spero che questo aiuti.
Altri suggerimenti
Non so PIC S9, ma Oracle ha un tipo di dati timestamp.
Se si desidera memorizzare una data o un datetime con precisione per secondi, quindi utilizzare il tipo di dati DATE. Se avete bisogno di granularità inferiore al secondo quindi utilizzare il tipo di dati TIMESTAMP.
E 'considerato una cattiva pratica di memorizzare le date come una rappresentazione numerica o un carattere in Oracle in quanto rende le operazioni di validazione e la data la data più complesso, e può portare a scarsa ottimizzazione delle query.