1
我正在运行PostgreSQL 9.4,并在我的查询中正确地转换时区。更新数据库的服务器是XMPP聊天服务器,所涉及的列是sent_date
,它的数据类型为timestampz
。PostgreSQL时区转换
首先,我测试的转换从UTC工程,以东部时间静态(第一无需转换,然后用):
tcmadb-pub=> select '2016-02-24 05:52:58.686893'::timestamp with time zone;
timestamptz
-------------------------------
2016-02-24 05:52:58.686893+00
(1 row)
tcmadb-pub=> select '2016-02-24 05:52:58.686893'::timestamp with time zone AT TIME ZONE 'AEDT';
timezone
----------------------------
2016-02-24 16:52:58.686893
(1 row)
然而,当我运行实际的查询,我只看到数据timestampz和不如时区时间:
SELECT sent_date
FROM jm
WHERE
from_jid like '[email protected]%' AND
sent_date::timestamp with time zone AT TIME ZONE 'AEDT' BETWEEN '2016-02-23' AND '2016-02-29';
sent_date
-------------------------------
2016-02-23 22:13:33.858971+00
2016-02-23 22:13:31.458917+00
2016-02-23 22:13:26.186859+00
2016-02-23 22:13:46.347431+00
2016-02-23 22:22:33.483243+00
2016-02-23 22:22:38.482727+00
2016-02-23 22:22:35.929189+00
2016-02-23 22:23:15.196597+00
2016-02-23 22:24:19.257813+00
2016-02-23 22:23:39.746997+00
2016-02-23 22:24:14.382916+00
2016-02-23 22:24:45.410786+00
2016-02-23 22:23:58.929407+00
2016-02-23 22:28:46.33302+00
2016-02-23 22:28:52.141082+00
2016-02-23 22:29:16.330865+00
2016-02-23 22:58:33.798908+00
2016-02-23 22:58:33.795771+00
2016-02-24 03:06:11.60482+00
2016-02-24 03:06:31.276288+00
2016-02-24 03:07:07.885728+00
2016-02-24 03:14:31.630305+00
2016-02-24 03:14:31.632573+00
2016-02-24 05:16:21.757124+00
2016-02-24 05:16:21.760133+00
2016-02-24 05:51:38.791875+00
2016-02-24 05:51:38.794093+00
2016-02-24 05:52:58.686893+00
(28 rows)
这从来没有工作过,所以我猜我的查询是错误的东西。
谢谢@OcuS就是这样 – Daniel