Postgres where子句比较时间戳


77

我有一个表,其中列是数据类型 timestamp

其中包含一天的多个记录的记录,我想选择与一天相对应的所有行

我该怎么做?


1
datetimePostgres中没有类型。有timestamp,带有和不带有时区。
ypercubeᵀᴹ

Answers:


133

假设您实际上是timestamp因为datetimePostgres中没有

将时间戳列转换为日期,这将删除时间部分:

select *
from the_table
where the_timestamp_column::date = date '2015-07-15';

这将返回从7月15日开始的所有行。

请注意,上面将不会在上使用索引the_timestamp_column。如果性能至关重要,则需要在该表达式上创建索引或使用范围条件:

select *
from the_table
where the_timestamp_column >= timestamp '2015-07-15 00:00:00'
  and the_timestamp_column < timestamp '2015-07-16 00:00:00';

1
希望我有提交的第一个样式查询到一张大桌子前阅读的第二部分...
宫灿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.