Herramientas de usuario

Herramientas del sitio


informatica:bases_de_datos:oracle:snippets

¡Esta es una revisión vieja del documento!


Snippets Oracle SQL

Fechas

Operaciones

Diferencia entre fechas:

SELECT (sysdate - to_date('2020-01-01 00:00', 'YYYY-MM-DD hh24:mi') AS dias_diferencia
FROM dual

Mostraría los días entre sysdate y las 2020-01-01 00:00. Si queremos pasarlo a horas, habría que multiplicarlo por 24. Para pasar a minutos, multiplicarlo por 24 y por 60, etc.

Extracción

Para extraer año, mes, día de una fecha:

SELECT EXTRACT(YEAR FROM sysdate)
FROM dual;
 
SELECT EXTRACT(MONTH FROM sysdate)
FROM dual;
 
SELECT EXTRACT(DAY FROM sysdate)
FROM dual;

Otra opción:

SELECT to_char(sysdate, 'yyyy')
FROM dual;
 
SELECT to_char(sysdate, 'mm')
FROM dual;
 
SELECT to_char(sysdate, 'dd')
FROM dual;

Texto

Extracción

Mediante la función REGEXP_SUBSTR se puede extraer un subcadena de un texto:

SELECT regexp_substr('Metallica - Nothing Else Matters', '[^-[:space:]]*$')
FROM dual

Devolvería Nothing Else Matters

Como el regex de Oracle está basado en POSIX, no se puede utilizar \s para coincidencias de espacios en blanco sino que se debe usar [:space:] o [:blank:] para espacios y tabulaciones.

Recursos

informatica/bases_de_datos/oracle/snippets.1609155837.txt.gz · Última modificación: por tempwin