【发布时间】:2021-08-20 20:44:21
【问题描述】:
我有一个 REST 服务,其端点在请求的时间间隔内获取数据。请求的间隔下降为 Long 类型的两个 Unix 时间戳(以毫秒为单位)。像这样:
Long start = 1622648253010;
Long end = 1622651853010;
我有一个 PostgreSQL 数据库,它有一个带有时间戳列的表。我需要从时间戳在两个 Unix 时间戳之间的那个表中选择一些数据。但是 PostgreSQL 不理解 Unix 时间戳,所以我必须在查询中使用它们之前将这两个时间戳转换为 PostgreSQL 兼容的时间戳。转换应该在 Java 中完成,而不是在 SQL 查询中。
我该怎么做?我知道的唯一方法是:
java.sql.Timestamp.from(Instant.ofEpochSecond(
start.getSeconds(), start.getNanos()))
但这不起作用。
【问题讨论】:
-
我建议你不要使用
java.sql.Timestamp。该课程设计得很差,而且已经过时了。而是使用OffsetDateTime或LocalDateTime;两者都来自java.time, the modern Java date and time API。 -
1622648253010不是timestamp值blog.sql-workbench.eu/post/epoch-mania
标签: java postgresql unix timestamp unix-timestamp