Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Área de Tecnologías de la Información y las Comunicaciones Aplicadas Universidad de Murcia
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
ATICA arrow Consultoria arrow DBconnector arrow SQL - Formatos de Fecha (Obtener nombre del mes)
24.05.2012
 
 
SQL - Formatos de Fecha (Obtener nombre del mes) Imprimir E-mail
¿Cómo obtendrías el nombre del mes a partir de su valor numérico? ... ¿estás pensando en usar IF, o tal vez DECODE? Esto se puede resolver de modo mucho más simple convirtiendo el valor numérico a fecha (mes correspondiente), y después pasándolo a string con la expresión de formato de fecha adecuada:
SQL> select to_char(to_date(to_char(03),'mm'),'Month') from dual;

TO_CHAR(TO
----------
Marzo
En el caso de que la aplicación que accede a Oracle no esté indicando que la sesión se establece con los valores de internacionalización (NLS) correspondientes a España, obtendríamos "March" (siguiendo con el ejemplo). Para obtener "Marzo" habría que indicar la variable NLS correspondiente en la propia expresión TO_CHAR:
SQL> select to_char(to_date(to_char(03),'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH') from dual;

TO_CHAR(TO
----------
Marzo
Por supuesto, como ya sabéis, la expresión TO_CHAR para obtener el nombre del mes se puede usar dentro de código PL/SQL:
declare
  mesn number(2);
  mesc varchar(20);
begin
  mesn:=3;
  mesc:=to_char(to_date(to_char(mesn),'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH');
  dbms_output.put_line('El mes '||to_char(mesn)||' es '||mesc);
end;
/

Una forma de obtener el valor numérico de alguno de los componentes de la fecha (dia, mes, año, etc) es usando la función EXTRACT:
SQL> select extract(day from sysdate) dia, extract(month from sysdate) mes, extract(year from sysdate) anio from dual;

       DIA        MES       ANIO
---------- ---------- ----------
         5         10       2010

Referencias:

Última modificación ( 06.10.2010 )
 
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Volver al incio del documento Volver al inicio del documento
Área de Tecnologías de la Información y las Comunicaciones Aplicadas