在 PostgreSQL 上设置默认日期格式

Posted

技术标签:

【中文标题】在 PostgreSQL 上设置默认日期格式【英文标题】:Setting a default date format on PostgreSQL 【发布时间】:2011-12-23 12:27:25 【问题描述】:

下午好,

你们中的许多人可能已经知道,例如,在 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),但我一直在寻找答案但没有成功。无论如何,我一直无法找到答案。

有什么建议吗?提前感谢您并祝愿这个假期!

【问题讨论】:

您真的使用的是 7.4 版吗?好久没EOL了……用更新的版本,目前至少8.3版本,所有旧版本都是EOL。并使用匹配的文档。 实际上我正在使用 10g,但我正在使用的代码是很久以前编写的。我正在做的是将该代码迁移到 PostgreSQL,所以问题出现了。无论如何,您的建议对我们所有人都是一个很好的提醒。谢谢! 检查我编辑的答案,这将解决问题。 【参考方案1】:

SET DATESTYLE 可能会执行您想要的操作,至少对于日期的日、月、年部分而言。

搜索here for DateStyle。

【讨论】:

这只会给你 4 个固定选项,而不是用户定义的一个。【参考方案2】:

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 函数也可以使用,您仍然可以选择。

【讨论】:

看起来不错!这是最准确的方法。谢谢!

以上是关于在 PostgreSQL 上设置默认日期格式的主要内容,如果未能解决你的问题,请参考以下文章

如何更改excel中的默认日期格式

请问在excel中如何把数值YYYYMMDD转换为日期YYYY-MM-DD呢?如果直接设置单元格格式为日期,只能显示一连串

在Excel里,日期为啥变成了数字

为啥excel日期会变成数字

日期怎样设置成年月日时分格式?

excel的单元格为空 日期型 插入到SQL数据库 为啥会出现默认时间1900-1-2