A veces es necesario obtener sólo una parte de una fecha de un campo tipo datetime en sentencias SQL en Oracle. En un post pasado se explicó como obtener sólo el año, mes o día con la función to_char(). Ahora vamos a ver cómo obtener los mismos datos pero con la función extract().
En el ejemplo siguiente vamos a ver como obtener el día, mes o año de la fecha actual de la base de datos oracle:
-- Obtiene el día SELECT EXTRACT(DAY FROM sysdate) FROM dual; --Obtiene el mes SELECT EXTRACT(MONTH FROM sysdate) FROM dual; --Obtiene el año SELECT EXTRACT(YEAR FROM sysdate) FROM dual;
A diferencia de la función to_char() que regresa un tipo caracter o alfanumérico, la función extract() regresa el resultado de tipo numérico.
La función extract() también puede extraer la hora, minuto y segundo de un dato tipo datetime:
-- Obtiene la hora SELECT EXTRACT(HOUR FROM systimestamp) FROM dual; --Obtiene el minuto SELECT EXTRACT(MINUTE FROM systimestamp) FROM dual; --Obtiene el segundo SELECT EXTRACT(SECOND FROM systimestamp) FROM dual;
¡Espero y les sea útil!