Usted puede tomar ventaja de una variedad de
modelos de formatos para convertir elementos DATE a cualquier representación carácter
de una fecha utilizando la función TO_CHAR. Su sintaxis es:
TO_CHAR( date1, [format],[nls_parametro])
Solo el parámetro date1 es obligatorio y debe ser
un valor fecha. El parámetro opcional format es case sensitive y debe ser
encerrado entre comillas simples. El format
especifica que elementos son extraídos y si los elementos debe ser descritos
con nombre largo o corto. Los nombres de los días y meses son automáticamente llenados
con espacios. Estos espacios pueden ser
removidos con un modificar en el format llamado fill mode (fm) prefijándose al
format esto permite eliminar los espacios. Hay varios formatos para fechas
disponibles:
Ejemplo:
-- EN ESTE EJEMPLO
EN EL CUAL NO SE ESPECIFICA UN FORMATO DE MASCARA
-- ORACLE UTILIZA LA
MASCARA QUE ESTE DEFINIDA EN EL SQL DEVELOPER
SELECT
TO_CHAR(SYSDATE) FROM DUAL;
SELECT 'LA FECHA DE
HOY ES ' || TO_CHAR(SYSDATE) FROM DUAL;
SELECT
TO_CHAR(SYSDATE) || ' ES LA FECHA DE HOY' FROM DUAL;
-- OBTIENE EL DIA DE
LA FECHA
SELECT
TO_CHAR(SYSDATE,'D') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'DD') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'DDD') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'DY') || 'DIA DE LA SEMANA' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'DAY') || 'DIA DE LA SEMANA' FROM DUAL;
SELECT TO_CHAR(SYSDATE,'day')
|| 'DIA DE LA SEMANA' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'FMDAY') || 'DIA DE LA SEMANA' FROM DUAL;
-- OBTIENE EL AÑO DEL
ELEMENTO FECHA
SELECT
TO_CHAR(SYSDATE,'Y') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'YY') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'YYY') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'RR') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'YEAR') || ' AÑO EN LETRAS' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'Year') FROM DUAL;
-- OBTIENE EL MES
ABREVIADO DE LA FECHA
SELECT TO_CHAR(SYSDATE,'MON')
|| 'MES ACTUAL' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'MONTH') || 'MES ACTUAL' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'fmMONTH') || 'MES ACTUAL' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'MON') || 'MES ACTUAL' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'fmMON') || ' MES ACTUAL' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'fmMon') || ' MES ACTUAL' FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'MM') || ' MES ACTUAL' FROM DUAL;
Las mascaras son case-sensitive ya que por ejemplo
si especificamos la siguiente mascara “Month” es mes aparecerá con la primera letra
mayúscula, sucede también con el elemento día y año en letras. Cuando especificamos
una máscara para recuperar el nombre completo del mes, día o año Oracle agrega
espacios a la derecha para eliminar esto debemos agregar el prefijo fm.
Para recuperar elementos como semana, siglo y otros
menos utilizados utilizamos formatos de mascaras especificados en la tabla 5-6.
Y para elementos tiempo utilizamos la tabla 5-7.
-- OTROS EJEMPLOS
SELECT
TO_CHAR(SYSDATE,'DD-MM-YYYY') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'FMDAY, DD - MONTH - YYYY') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'fmDay - Month - Year') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'HH, HH12, HH24 AM MM SS SSSS') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'DDTH MM YYYY') FROM DUAL;
SELECT TO_CHAR(SYSDATE,'CC')
FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'DAY') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'MONTH') FROM DUAL;
SELECT
TO_CHAR(SYSDATE,'YEAR') FROM DUAL;
SELECT
TO_CHAR(hire_date,'fmDay, "the" DDth "of" Month, Yyyysp.')
FROM employees
WHERE TO_CHAR(HIRE_DATE,'FMDAY') = 'SÁBADO'
Comentarios
Publicar un comentario