viernes, 1 de octubre de 2010

Oracle - Formato de Fecha en Español

Para generar el resultado de una consulta en Oracle y que el nombre del dia y mes este en el idioma deseado en este caso Español usamos el parametro nls_languaje de la funcion to_char

to_char( date, [ format_mask ], [ nls_language ] )
format_mask: será la máscara que utilizaremos para convertir la cadena de texto
nls_language: es un parámetro opcional, es el lenguaje nls que utilizaremos para la conversión.

Veamos unos ejemplos:

select to_char(sysdate,'day dd "de" month "de" yyyy','nls_date_language=spanish')
from dual

Resultado: viernes 6 de octubre de 2010

select to_char(sysdate,'day dd "de" month "de" yyyy','nls_date_language=english')
from dual

Resultado: friday 01 de october de 2010

select to_char(sysdate,'day dd "de" month "de" yyyy','nls_date_language=german')
from dual


Resultado: freitag 01 de oktober de 2010

select to_char(sysdate,'day dd "de" month "de" yyyy','nls_date_language=italian')
from dual

Resultado: venerdì 01 de ottobre de 2010

Ahora si queremos que el nombre del día o mes venga sin espacios en blanco al final

select to_char(sysdate,'fmday dd "de" month "de" yyyy','nls_date_language=spanish')
from dual



12 comentarios:

  1. Muchas Gracias.
    me traia loco, pero con esto fue excelente terminar mis reportes.
    Un abrazo!!!

    ResponderEliminar
  2. Gracias! Exito total....

    ResponderEliminar
  3. Estimado, y para no aplicar el NLS en la query, sino que en la configuración del cliente oracle (en servidor windows)... recuerdo que hay 2 opciones pero no recuerdo la parte técnica específica, que serían por variables de entorno o diréctamente en el registro de windows, puedes darnos el tip por favor?.

    ResponderEliminar
    Respuestas
    1. En el registro de Windows seria una opcion buscas la llave NLS_LANG en
      HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

      Eliminar
  4. Me salvaste loco! gracias!

    ResponderEliminar
  5. Hola, consulta y alguién sabe como hacer esto mismo, pero con un Order by para el nro. del día?
    gracias de antemano

    ResponderEliminar