2011-12-23 502 views
1

下午好,PostgreSQL的设置默认的日期格式

很多人可能已经知道这是可能的,例如,在Oracle中设置通过格式化功能(即TO_CHAR)所使用的默认日期格式,就这样:

ALTER SESSION SET NLS_DATE_FORMAT='SYYYY/MM/DD~HH24:Mi:SS' 

我的问题是:在PostgreSQL上是否有任何等价物。我一直在寻找一个没有成功的答案,尽管我找到了一些PostgreSQL语言环境设置的参考(http://www.postgresql.org/docs/7.4/static/charset.html)。无论如何,我一直无法找出答案。

有什么建议吗?预先感谢您,并祝愿这个假期!

+2

你真的在使用7.4版吗?这是很长一段时间的EOL ...使用更新的版本,此时至少版本8.3,所有旧版本都是EOL。并使用匹配的文档。 – 2011-12-23 12:42:20

+0

其实我正在用10g工作,但我正在使用的代码是很久以前写的。我正在做的是将该代码迁移到PostgreSQL,所以出现了这个问题。无论如何,你的建议对我们所有人都是一个很好的提醒。谢谢! – Sergio 2011-12-23 12:47:24

+0

检查我编辑的答案,这将解决问题。 – 2011-12-23 13:01:08

回答

3

to_char没有默认格式,但您可以使用变量来解决此问题。

刚刚创建自己的TO_CHAR函数,使用默认设置:

CREATE OR REPLACE FUNCTION to_char(timestamptz) RETURNS text AS 
$$ 
    SELECT to_char($1,'YYYY/MM/DD~HH24:Mi:SS'); -- here your default setting 
$$ 
LANGUAGE SQL; 

“正常” TO_CHAR功能也将正常工作,你仍然有这样的选择。

+0

看起来不错!这是最准确的方法来进行。谢谢! – Sergio 2011-12-23 13:13:34

5

这可能是SET DATESTYLE做你想做的,至少在日期的日,月,年部分。

搜索here for DateStyle

+0

这只会给你4个固定的选项,而不是用户定义的选项。 – 2011-12-23 12:45:39

+0

@FrankHeikens是的,因此我犹豫“这是可能的”... – 2011-12-23 12:55:20