我在一张表中有一个时间戳属性,我想在SQL查询中放置一个条件,其中条件值是UNIX时间戳(即数值长值)。
[...] table.timestampattr > 6456454654 [...]
我该怎么做?
我在一张表中有一个时间戳属性,我想在SQL查询中放置一个条件,其中条件值是UNIX时间戳(即数值长值)。
[...] table.timestampattr > 6456454654 [...]
我该怎么做?
extract(epoch from ...)
从任何PostgreSQL时间和日期类型中获取Unix时间戳(请参见手册中的日期/时间函数)。因此,你的查询片段可以这样写:[...] extract(epoch from table.timestampattr) > 6456454654 [...]
或者,to_timestamp
函数执行相反的转换,因此您也可以编写:
或者,to_timestamp
函数执行相反的转换,因此您也可以编写:
[...] table.timestampattr > to_timestamp(6456454654) [...]
选择
: WITH myconstants (current_unix_date) as (
values (extract(epoch from now() at time zone 'utc'))
)
SELECT * From table, myconstants
WHERE table.target_date_time_unix > myconstants.current_unix_date
to_timestamp
被定义为IMMUTABLE
,因此查询规划器应该知道只运行一次并缓存结果。 - IMSoPto_timestamp
接受一个浮点数,所以你可以加上小数点得到你想要的值:select to_timestamp(1360417525.156)
。 - IMSoP