next up previous
Next: Sobre este documento... Up: Algunas funciones útiles Previous: Valores nulos y decodificación

Formatos de Fecha

La función TO_CHAR(<fecha>,<formato>) traduce una fecha/hora (o parte de ella) a una cadena de caracteres, y TO_DATE(<fecha>,<formato>) transforma una cadena de caracteres a una fecha, hora o combinación fecha/hora.

Por ejemplo, TO_DATE('02/08/2002', 'DD/MM/YYYY') daría la fecha 2 de agosto de 2002. Si suponemos que un atributo FECHA almacena esa misma fecha a las 3 de la tarde, TO_CHAR(FECHA, 'DD-MON-YYYY HH:MI AM') devolvería el string 02-AGO-2002 03:00 PM. El formato es una cadena de caracteres en la que se indica el formato siguiendo las claves que se muestran en la Tabla 2.1. Esta tabla no incluye absolutamente todos los formatos, pero sí un buen número de ellos, que deberían ser más que suficientes para un uso normal.


Tabla 2.1: Formatos de fecha en Oracle
   
Siglos y años
CC Siglo
SCC Siglo. Si es AC (Antes de Cristo), lleva un signo $-$
   
YYYY Año, formato de 4 dígitos
SYYY Año, formato de 4 dígitos. Si es AC lleva un signo $-$
YY Año, formato de 2 dígitos
YEAR Año, escrito en letras y en inglés (por ejemplo, 'TWO THOUSAND TWO')
SYEAR Ídem, pero si es AC lleva el signo $-$
BC Antes o Después de Cristo (AC o DC) para usar con los anteriores, por ejemplo YYYY BC
   
Meses
Q Trimestre: Ene-Mar=1, Abr-Jun=2, Jul-Sep=3, Oct-Dic=4
   
MM Número de mes (1-12)
RM Número de mes en números romanos (I-XII)
MONTH Nombre del mes completo rellenado con espacios hasta 10 espacios (SEPTIEMBRE)
FMMONTH Nombre del mes completo, sin espacios adicionales
MON Tres primeras letras del mes: ENE, FEB,...
   
Semanas
WW Semana del año (1-52)
W Semana del mes (1-5)
   
Días
DDD Día del año (1-366)
DD Día del mes (1-31)
D Día de la semana (1-7)
DAY Nombre del día de la semana rellenado a 9 espacios (MIÉRCOLES)
FMDAY Nombre del día de la semana, sin espacios
DY Tres primeras letras del nombre del día de la semana
DDTH Día (ordinal): 7TH
DDSPTH Día ordinal en palabra, en inglés: SEVENTH
   
horas
HH Hora del día (1-12)
HH12 Hora del día (1-12)
HH24 Hora del día (1-24)
SPHH Hora del día, en palabra, inglés: SEVEN
AM am o pm, para usar con HH, como 'HH:MI am'
PM am o pm
A.M. a.m. o p.m.
P.M. a.m. o p.m.
   
Minutos y segundos
MI Minutos (0-59)
SS Segundos (0-59)
SSSS Segundos después de medianoche (0-86399)

Además de estas palabras clave, el formato puede incluir espacios y los signos de puntuación -/,.;:. Cualquier otro carácter debe ir "entre comillas dobles".

Finalmente, se debe indicar que los formatos de fecha que indican un periodo en palabras, como el nombre del mes o del día de la semana, seguirán el lenguaje de la instalación (de Oracle o del sistema operativo), por lo que no se garantiza que sea en español. Además, el uso de mayúsculas o minúsculas es significativo. Así, para el mes de agosto, MONTH produce AGOSTO , Month, Agosto , y month, agosto , y para el lunes, DY produce LUN y fmday, lunes (o su equivalente en inglés si así está configurado el idioma).

Por ejemplo:

SQL> select ename,
  2      to_char(hiredate,'dd "de " fmmonth " de " yyyy') AS "Fecha de contrato"
  3* from emp


ENAME      Fecha de contrato
---------- ---------------------------
SMITH      17 de  diciembre  de  1980
ALLEN      20 de  febrero  de  1981
WARD       22 de  febrero  de  1981
JONES      02 de  abril  de  1981
MARTIN     28 de  septiembre  de  1981
BLAKE      01 de  mayo  de  1981
CLARK      09 de  junio  de  1981
SCOTT      09 de  diciembre  de  1982
KING       17 de  noviembre  de  1981
TURNER     08 de  septiembre  de  1981
ADAMS      12 de  enero  de  1983
JAMES      03 de  diciembre  de  1981
FORD       03 de  diciembre  de  1981
MILLER     23 de  enero  de  1982

14 filas seleccionadas.


next up previous
Next: Sobre este documento... Up: Algunas funciones útiles Previous: Valores nulos y decodificación
Miguel Rodríguez Penabad 2003-03-17