2015-10-20 3 views
0

Я занят попыткой переноса базы данных PostgreSQL, однако я заметил, что когда я делаю резервный экспорт базы данных PostgreSQL, она выводит даты как Y/m/d.PostgreSQL datestyle altering

Я множество datestyle = «ISO, ДМГ» ранее, и когда я делаю вставки можно вставить дату как DMY

insert into tablename (datefield) 
values ('30-12-2015'); 

, который работает и перепроверить я использовал шоу datestyle и я получить

"ISO, DMY" 

, но когда я делаю выбор из таблицы я вижу DateTime как

'2015-12-30' 

, который он резервирует, когда я пытаюсь загрузить его в базу данных, использующую DMY, он не работает

Почему это и как я получаю данные, хранящиеся в базе данных, как DMY, так что, когда я выбираю из таблицу, которую я вижу?

'30-12-2015' 
+0

AFAIK вы не можете изменить внутреннее представление поля даты. Но когда вы запрашиваете поле из таблицы, вы можете отформатировать вывод на все, что хотите. – PhillipD

+0

Лучшее, что нужно сделать, это ** не ** полагаться на какой-либо формат и использовать литералы даты ANSI: 'date '2015-12-30''. Формат, который вы видите, всегда применяется клиентом SQL, который вы используете. Это не имеет никакого отношения к тому, как датируются даты. Формат yyyy-mm-dd всегда определяется как стиль ISO, независимо от датестиля, и поэтому экспорт использует его. –

+0

Обычно я предпочитаю придерживаться временных меток, однако задача, которую мне нужно выполнить, уже имеет базу данных с использованием формата DMY – Trent

ответ

0

Кажется, я нашел решение, чтобы увидеть дату в базе данных с использованием формата ДМГ я должен был бежать

set datestyle = 'SQL, DMY' 

вместо

set datestyle = 'ISO, DMY' 
Смежные вопросы