PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgresql:formato de data e saída de idioma local


Sobre a primeira pergunta:espaços adicionais são porque month e Day padrões são:

https://www.postgresql.org/docs/9.6/static /functions-formatting.html

Então, se você quiser remover esses espaços, você pode tentar algo assim:
 select trim(to_char(localtimestamp(0), 'Day'))||to_char(localtimestamp(0), ' DD ')||trim(to_char(localtimestamp(0), 'month'))||to_char(localtimestamp(0), ' YYYY')

--

Sobre o idioma italiano, pode haver outras maneiras também, mas isso também deve funcionar. Você pode codificar nomes de mês e dia italianos e "traduzi-los" usando case expressão, algo assim:
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

Observe que você deve colocar todos os nomes de 7 dias e 12 meses em expressões maiúsculas, se quiser trabalhar isso corretamente a qualquer momento.

Ou melhor ainda, no case declarações, você pode usar D padrão para determinar o dia e MM padrão por mês. Se você quiser ver a lista de padrões disponíveis, você pode seguir o link, eu postei acima.