如何在查询 to_timestamp Postgresql 中删除时区
How to remove TimeZone in query to_timestamp Postgresql
我在 Postgresql 中查找,我想删除查询中的 +9
UTC 值。
例如:在to_timestamp列,我想去掉+09
,只保留2016-02-26 00:23:44
值。
这是我的查询:
select t,to_timestamp(v) from c1.hour where f = 22 and date_trunc('day',t - '1 hour'::INTERVAL) = '2016-02-26 00:00:00' order by t ;
这是我的结果:
这是我没有使用 to_timestamp 时的结果:
我能得到一些帮助吗?
使用 to_char()
函数将 timestamp
格式化为任何所需的字符串表示形式。示例:
SELECT to_char(now(), 'YYYY-MM-DD HH24:MI:SS')
将 return 2016-02-26 09:37:49
(没有时区)
您的查询必须是这样的:
SELECT t, to_char(to_timestamp(v), 'YYYY-MM-DD HH24:MI:SS')
FROM c1.hour
WHERE
f = 22
AND date_trunc('day',t - '1 hour'::INTERVAL) = '2016-02-26 00:00:00'
ORDER BY t ;
指定 UTC:
select to_timestamp(0)::timestamptz at time zone 'UTC'
我在时区 +08 并得到以下结果:
1970-01-01 00:00:00
根据时区规范,我得到:
1970-01-01 08:00:00+08
一个优点是您不必指定日期时间格式,这可能会给用户带来意想不到的结果。保留系统指定的格式。
你可以做到
cast("your column" as timestamp)
我在 Postgresql 中查找,我想删除查询中的 +9
UTC 值。
例如:在to_timestamp列,我想去掉+09
,只保留2016-02-26 00:23:44
值。
这是我的查询:
select t,to_timestamp(v) from c1.hour where f = 22 and date_trunc('day',t - '1 hour'::INTERVAL) = '2016-02-26 00:00:00' order by t ;
这是我的结果:
这是我没有使用 to_timestamp 时的结果:
我能得到一些帮助吗?
使用 to_char()
函数将 timestamp
格式化为任何所需的字符串表示形式。示例:
SELECT to_char(now(), 'YYYY-MM-DD HH24:MI:SS')
将 return 2016-02-26 09:37:49
(没有时区)
您的查询必须是这样的:
SELECT t, to_char(to_timestamp(v), 'YYYY-MM-DD HH24:MI:SS')
FROM c1.hour
WHERE
f = 22
AND date_trunc('day',t - '1 hour'::INTERVAL) = '2016-02-26 00:00:00'
ORDER BY t ;
指定 UTC:
select to_timestamp(0)::timestamptz at time zone 'UTC'
我在时区 +08 并得到以下结果:
1970-01-01 00:00:00
根据时区规范,我得到:
1970-01-01 08:00:00+08
一个优点是您不必指定日期时间格式,这可能会给用户带来意想不到的结果。保留系统指定的格式。
你可以做到 cast("your column" as timestamp)