Oracle
 sql >> Database >  >> RDS >> Oracle

dis. tra le date - SQL plus

Il titolo della domanda include "SQL plus", che per me implica Oracle.

Oracle non ha una funzione DATEDIFF. Il metodo più semplice per determinare il numero di giorni tra 2 date utilizzando Oracle è sottrarre una data dall'altra.

Select item, datebought, datesold, datesold-datebought as days from auctions;

Oracle memorizza le informazioni sulla data e sull'ora in un campo data. È pratica comune memorizzare le date troncate a mezzanotte all'interno dei campi della data in Oracle se non ti interessa l'ora.

Se le date sono già troncate a mezzanotte, il valore calcolato sarà un numero intero.

Ma se le date memorizzate includono informazioni sull'ora, potresti voler troncare il valore per ottenere un valore integrale. Sospetto che tu voglia troncare ogni data prima della sottrazione, in modo tale che se acquistato in un giorno, qualsiasi momento il giorno successivo conterà come 1 giorno. Oracle tronca le date a mezzanotte.

select item, datebought, datesold, trunc(datesold)-trunc(datebought) as days from auctions;

Sono d'accordo con WarrenT sul fatto che la tua tabella non dovrebbe avere la colonna dei giorni denormalizzati.