Стиль данных в Postgres

#sql #postgresql

#sql #postgresql

Вопрос:

В Oracle формат вывода ДАТЫ устанавливается с помощью NLS_DATE_FORMAT, но в PostgreSQL невозможно установить формат вывода ДАТЫ, подобный Oracle. В PostgreSQL формат вывода ДАТЫ можно задать с помощью dateStyle, но значения dateStyle ограничены, поэтому пользователь не может гибко изменять формат вывода ДАТЫ. Чтобы преодолеть эту проблему, мы можем использовать to_char() . Есть ли какой-либо другой способ установить dateStyle или создать пользовательский формат вывода dateStyle?

Комментарии:

1. Форматирование даты для ее отображения является обязанностью клиентского приложения. Проверьте свой SQL-клиент, можете ли вы повлиять на стиль данных там.

Ответ №1:

Вы уже показали параметры:

  • to_char ; или

  • DateStyle , в пределах, которые это позволяет.

Предполагается, что клиентские приложения должны форматировать даты. PostgreSQL просто предоставляет стандартную дату в легко анализируемом формате для чтения клиентскими драйверами. На самом деле, если вы используете двоичный протокол, он просто отправляет дату в виде bigint.

Если вы решительно настроены по этому поводу, вы можете предложить исправление для списка рассылки pgsql-hackers, добавляющее нужную вам функцию. Вы должны быть готовы изучить достаточное количество серверного кода PostgreSQL, чтобы реализовать это самостоятельно или заплатить кому-то другому за это. Я не совсем понимаю, почему dateStyle нельзя было расширить, чтобы принять строку формата, но я не думаю, что кто-то достаточно заботился о том, чтобы выполнить эту работу (и исправить все драйверы клиента для ее поддержки).