informatica:bases_de_datos:oracle:snippets
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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
