sql >> Base de Datos >  >> RDS >> PostgreSQL

Postgresql:formato de fecha y salida en idioma local

Acerca de la primera pregunta:los espacios adicionales se deben a month y Day los patrones son:

https://www.postgresql.org/docs/9.6/static /funciones-formato.html

Entonces, si desea eliminar estos espacios, puede intentar algo como esto:

 select trim(to_char(localtimestamp(0), 'Day'))||to_char(localtimestamp(0), ' DD ')||trim(to_char(localtimestamp(0), 'month'))||to_char(localtimestamp(0), ' YYYY')

--

Sobre el idioma italiano, puede haber otras formas también, pero esto también debería funcionar. Puede codificar los nombres de los meses y días en italiano y "traducirlos" usando case expresión, algo como esto:

select 
    case 
        when trim(to_char(tstamp, 'Day')) = 'Monday' then 'Monday_in_italian' 
        when trim(to_char(tstamp, 'Day')) = 'Tuesday' then 'Tuesday_in_italian'
        when trim(to_char(tstamp, 'Day')) = 'Wednesday' then 'Wednesday_in_italian' 
        -- another days here
    end||
    to_char(tstamp, ' DD ')||
    case 
        when trim(to_char(tstamp, 'month')) = 'january' then 'January_in_italian'
        when trim(to_char(tstamp, 'month')) = 'february' then 'February_in_italian'
        -- another months here
    end||
    to_char(tstamp, ' YYYY')
    as tstamp 
    from your_table

Tenga en cuenta que debe poner todos los nombres de los 7 días y los 12 meses en las expresiones de mayúsculas y minúsculas, si desea que esto funcione correctamente en cualquier momento.

O mejor aún, en case declaraciones, puede usar D patrón para determinar día y MM patrón por mes. Si desea ver la lista de patrones disponibles, puede seguir el enlace que publiqué anteriormente.