PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgresql:Datumsformat und Ausgabe in Landessprache

Zur ersten Frage:Zusätzliche Leerzeichen sind wegen month und Day Muster sind:

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

Wenn Sie also diese Leerzeichen entfernen möchten, können Sie Folgendes versuchen:

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

--

In Bezug auf die italienische Sprache gibt es möglicherweise auch andere Möglichkeiten, aber dies sollte auch funktionieren. Sie können italienische Monats- und Tagesnamen fest codieren und sie mit case "übersetzen". Ausdruck, etwa so:

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

Beachten Sie, dass Sie alle 7-Tages- und alle 12-Monatsnamen in Groß-/Kleinschreibung einfügen sollten, wenn Sie möchten, dass dies jederzeit korrekt funktioniert.

Oder noch besser, im case -Anweisungen können Sie D verwenden Muster zur Bestimmung des Tages und MM Muster für Monat. Wenn Sie die Liste der verfügbaren Muster sehen möchten, können Sie dem Link folgen, den ich oben gepostet habe.