Postgres RFC3339日期时间格式

时间:2016-05-08 08:38:16

标签: json postgresql datetime

有没有办法将日期时间格式化为RFC3339Nano例如:2006-01-02T15:04:05.999999999Z07:00在postgres 9.3或9.5中?

我尝试了to_char。但是没有文档说明如何处理TZ+07:00-07:00等。

我能找到的最近的一个是

v2=# select to_char(current_timestamp, 'YYYY-MM-DD HH:MI:SS.MSOF');
          to_char
----------------------------
 2016-05-08 12:16:14.493+04

这是postgres 9.3中的默认JSON输出格式datetime。请参阅下文。

psql (9.5.1, server 9.3.6)
Type "help" for help.

fetchrdb=> select to_json(current_timestamp);
             to_json
---------------------------------
 "2016-05-08 11:58:04.844548+04"
(1 row)

对于postgres 9.5的JSON编码输出,RFC3339Nanopsql (9.5.1) Type "help" for help. v2=# select to_json(current_timestamp); to_json ------------------------------------ "2016-05-08T11:59:17.121411+04:00" ,例如:

to_char

我找不到使用spring.datasource.testWhileIdle = true spring.datasource.validationQuery = SELECT 1 spring.jpa.show-sql = true spring.jpa.hibernate.ddl-auto = create-drop spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.HSQLDialect 在postgres 9.3或9.5中将datetime格式化为RFC3339Nano的选项。

http://www.postgresql.org/docs/9.5/static/functions-formatting.html

您是否使用任何隐藏的选项/功能来实现相同的功能?任何有关的帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

没有。 PostgreSQL时间戳精度只有几微秒。

答案 1 :(得分:0)

最接近的是这样的:

postgres=# select to_char(('1970-01-01T00:00:00Z'::timestamp), 'YYYY-MM-DD"T"HH24:MI:SS.US"Z"');
           to_char           
-----------------------------
 1970-01-01T00:00:00.000000Z
(1 row)

这提供了T和微秒,但没有提供时区。