Postgres将时间戳与长unix时间戳进行比较

Jac*_*son 5 sql postgresql

我在表中有一个timestamp属性,我想在sql查询中放置一个条件,其中条件值是一个unix时间戳(即数字长值).

[...] table.timestampattr > 6456454654 [...]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

IMS*_*SoP 10

您可以使用extract(epoch from ...)从任何PostgreSQL时间和日期类型获取Unix时间戳(请参阅手册中的日期/时间函数).

所以你的查询片段可以写成:

[...] extract(epoch from table.timestampattr) > 6456454654 [...]
Run Code Online (Sandbox Code Playgroud)

或者,该to_timestamp函数执行相反的转换,因此您也可以编写:

[...] table.timestampattr > to_timestamp(6456454654) [...]
Run Code Online (Sandbox Code Playgroud)

  • 这里to_timestamp()是更好的选择.它评估为常数.必须针对每一行评估从时间戳列中提取时期. (5认同)