在 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中如何把数值YYYYMMDD转换为日期YYYY-MM-DD呢?如果直接设置单元格格式为日期,只能显示一连串