2015-10-20 248 views
0

我忙于尝试传输PostgreSQL数据库,但我注意到当我做PostgreSQL数据库的备份导出时,它将日期输出为Y/m/d。PostgreSQL datestyle改变

我没有设定DATESTYLE =“ISO,DMY”以前当我做插入我可以插入日期DMY

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

其工作,并仔细检查我用表演DATESTYLE,我也得到

"ISO, DMY" 

但是当我做一个选择从表中我看到了日期时间为

'2015-12-30' 

它是备份的,因此当我尝试将它加载到使用DMY的数据库中时,它将失败

为什么这样以及我如何将存储在数据库中的数据设置为DMY,以便当我从我看到一张桌子?

'30-12-2015' 
+0

看到在数据库中的日期AFAIK你不能更改日期字段的内部表示。但是,当你从表中查询字段时,你可以将输出格式化为任何你想要的。 – PhillipD

+0

最好的办法是**不**依赖任何格式并使用ANSI日期文字:'日期'2015-12-30''。您看到的格式总是由您正在使用的SQL客户端应用。它与日期_的存储方式无关。格式yyyy-mm-dd总是标识为ISO风格,而不考虑datestyle,这就是导出使用该格式的原因。 –

+0

通常我更喜欢坚持时间戳,但是我需要完成的任务已经有了一个使用DMY格式的数据库 – Trent

回答

0

看来我已经找到了解决方案,使用了DMY格式,我不得不跑

set datestyle = 'SQL, DMY' 

代替

set datestyle = 'ISO, DMY'