sql >> Base de Datos >  >> RDS >> Oracle

Dif. entre fechas - SQL plus

El título de la pregunta incluye "SQL plus", lo que implica Oracle para mí.

Oracle no tiene una función DATEDIFF. El método más simple para determinar la cantidad de días entre 2 fechas usando Oracle es restar una fecha de la otra.

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

Oracle almacena información de fecha y hora en un campo de fecha. Es una práctica común almacenar fechas truncadas hasta la medianoche dentro de los campos de fecha en Oracle si no le importa la hora.

Si sus fechas ya están truncadas a la medianoche, el valor calculado será un número entero.

Pero si sus fechas almacenadas incluyen información de tiempo, es posible que desee truncar el valor para obtener un valor integral. Sospecho que querría truncar cada fecha antes de la resta, de modo que si se compra en un día, en cualquier momento del día siguiente cuente como 1 día. Oracle trunca las fechas hasta la medianoche.

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

Estoy de acuerdo con WarrenT en que su tabla no debería tener la columna de días desnormalizados.