#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 нельзя было расширить, чтобы принять строку формата, но я не думаю, что кто-то достаточно заботился о том, чтобы выполнить эту работу (и исправить все драйверы клиента для ее поддержки).