O pierwszym pytaniu:dodatkowe spacje są ponieważ month
i Day
wzory to:
https://www.postgresql.org/docs/9.6/static /functions-formatting.html
Jeśli więc chcesz usunąć te spacje, możesz spróbować czegoś takiego:
select trim(to_char(localtimestamp(0), 'Day'))||to_char(localtimestamp(0), ' DD ')||trim(to_char(localtimestamp(0), 'month'))||to_char(localtimestamp(0), ' YYYY')
--
Jeśli chodzi o język włoski, może są też inne sposoby, ale to też powinno działać. Możesz na stałe zakodować włoskie nazwy miesięcy i dni oraz "przetłumaczyć" je za pomocą case
wyrażenie, coś takiego:
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
Pamiętaj, że powinieneś umieścić wszystkie nazwy 7 dni i wszystkie 12 miesięcy w wyrażeniach wielkości liter, jeśli chcesz, aby to działało poprawnie w dowolnym momencie.
Albo jeszcze lepiej, w case
oświadczenia, możesz użyć D
wzór do określenia dnia i MM
wzór na miesiąc. Jeśli chcesz zobaczyć listę dostępnych wzorów, możesz kliknąć link, który zamieściłem powyżej.