Как изменить datestyle в PostgreSQL?

В postgres у меня есть таблица с столбцом даты. Теперь postgres позволяет мне записывать дату в формате Y-m-d. Но мне нужна дата в формате d/m/Y. Как его изменить?

Когда я это сделаю:

   show datestyle;

Я получаю:

 "ISO, DMY"

И введите дату в таблице в этом формате 13/02/2009

Но когда я снова закрываю и открываю таблицу, я вижу это 2009-02-13. JDBC также дает мне дату в этом формате. Что я делаю неправильно?

Ответ 1

yyyy-mm-dd - рекомендуемый формат для поля даты, его формат ISO 8601.

Вы можете изменить формат в файле postgresql.conf.

В документе указано

Сроки даты/времени могут быть выбраны пользователем с помощью SET datestyle, параметр DateStyle в postgresql.conf конфигурационный файл или переменную среды PGDATESTYLE на сервера или клиента. Функция форматирования to_char также доступный как более гибкий способ форматирования вывода даты/времени.

Надеюсь, это поможет!

Ответ 2

Используйте to_char с вашей датой следующим образом:

select to_char(date_column1, 'Mon/DD/YYYY');

Ответ 3

Если это вообще возможно, не используйте DATESTYLE. Это повлияет на весь код вашего сеанса, включая такие вещи, как хранимые процедуры, которые могут не ожидаться, и, возможно, не установили явное переопределение DATESTYLE в их определениях.

Если вы можете, используйте to_char для вывода даты и to_timestamp для ввода даты всякий раз, когда вам нужно использовать любые форматы дат, которые могут быть неоднозначными, например D/M/Y. Использовать даты ISO в остальное время.

Ответ 4

вы также можете использовать команду

set datestyle to [your new datestyle];

в консоли postgreSQL.