PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql:formato data e output in lingua locale

Sulla prima domanda:gli spazi aggiuntivi sono dovuti a month e Day i modelli sono:

https://www.postgresql.org/docs/9.6/static /funzioni-formattazione.html

Quindi, se vuoi rimuovere questi spazi, puoi provare qualcosa del genere:

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

--

Per quanto riguarda la lingua italiana, potrebbe esserci anche un altro modo, ma dovrebbe anche funzionare. Puoi codificare i nomi dei mesi e dei giorni italiani e "tradurli" usando case espressione, qualcosa del genere:

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

Nota che dovresti inserire tutti i nomi di 7 giorni e tutti i 12 mesi nelle espressioni case, se vuoi che funzioni correttamente in qualsiasi momento.

O ancora meglio, nel case dichiarazioni, puoi usare D modello per determinare il giorno e MM modello per mese. Se vuoi vedere l'elenco dei modelli disponibili, puoi seguire il link, che ho pubblicato sopra.