sql - months - Función DATEDIFF en Oracle
oracle datediff in minutes (3)
Necesito usar Oracle pero la función DATEDIFF no funciona en Oracle DB.
¿Cómo escribir el siguiente código en Oracle? Vi algunos ejemplos usando INTERVAL o TRUNC.
SELECT DATEDIFF (''2000-01-01'',''2000-01-02'') AS DateDiff;
En Oracle, simplemente puede restar dos fechas y obtener la diferencia en días . También tenga en cuenta que a diferencia de SQL Server o MySQL, en Oracle no puede realizar una declaración de select
sin una cláusula from
. Una forma de evitar esto es usar la tabla ficticia incorporada, dual
:
SELECT TO_DATE(''2000-01-02'', ''YYYY-MM-DD'') -
TO_DATE(''2000-01-01'', ''YYYY-MM-DD'') AS DateDiff
FROM dual
Simplemente puedes restar dos fechas. Tienes que to_date
primero, usando to_date
:
select to_date(''2000-01-01'', ''yyyy-MM-dd'')
- to_date(''2000-01-02'', ''yyyy-MM-dd'')
datediff
from dual
;
El resultado está en días, y la diferencia de estas dos fechas es -1
(puede cambiar las dos fechas si lo desea). Si te gusta tenerlo en horas, simplemente multiplica el resultado por 24.
Solo resta las dos fechas:
select date ''2000-01-02'' - date ''2000-01-01'' as dateDiff
from dual;
El resultado será la diferencia en días.
Más detalles están en el manual:
https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042