从 postgresql DB 表的 EPOCH 列中提取时间戳

Posted

技术标签:

【中文标题】从 postgresql DB 表的 EPOCH 列中提取时间戳【英文标题】:extract timestamp from EPOCH cloumn from postgresql DB table 【发布时间】:2018-05-01 04:26:31 【问题描述】:

我正在尝试执行下面提到的 PostgreSQL 查询,其中 checkin_ts 采用 epoch 格式,并希望编写一个人类可以理解的查询(以人类可读的格式放置时间戳)。

select * from users where to_timestamp(checkin_ts) >= '2017-11-11 00:00:00'
LIMIT 100;

当我尝试执行上述查询时,我收到以下错误

ERROR:  execute cannot be used while an asynchronous query is underway

【问题讨论】:

向我们展示您的完整代码。您的问题中没有execute(并且错误消息不是 Postgres 错误消息) 您是否将其作为应用程序的一部分运行?如果您手动运行 SQL,您是否能够重现此问题,例如使用psql 或 pgAdmin?您的错误似乎与显示的 SQL 没有任何关系,听起来是您的应用程序错误地使用异步查询的问题。 @a_horse_with_no_name 我在 PgAdmin 4 工作台中运行 【参考方案1】:

您需要向我们提供您的表格的描述,以了解 checkin_ts 格式。

但是 to_timestamp 需要这样的文本参数:

SELECT * 
  FROM users 
 WHERE to_timestamp(checkin_ts::text, 'YYYY-MM-DD HH24:MI:SS') >= '2017-11-11 00:00:00' LIMIT 100;

您执行此查询的环境是什么? 错误似乎是您尝试使用两个不同的游标在同一连接上执行两个查询。

【讨论】:

我收到以下错误 ERROR: timestamp out of range SQL state: 22008 再说一遍,你的字段 checkin_ts 到底有什么?请给我们一些数据。 Piedvache 这是表格说明 id |姓名 | checkin_ts 整数 |性格变化|整数

以上是关于从 postgresql DB 表的 EPOCH 列中提取时间戳的主要内容,如果未能解决你的问题,请参考以下文章

Qt 时间戳从 Epoch(1970) 到 2000 年开始的 Postgresql 时间戳。如何添加偏移量并将毫秒转换为微秒?

PostgreSQL:如何从 Unix 纪元转换为日期?

从 PostgreSQL 到 Cassandra - 不支持聚合函数

在 PostgreSQL 中为特定模式和表所有者创建表的过程是啥

如何配置从 Vanilla Postgresql 9.6 DB 到 AWS RDS Postgresql 的流复制

从 DB2 迁移到 PostgreSQL-BLOB()/CLOB()