PostgreSQL-日期时间<= YEAR-MONTH-DAY,忽略时间

时间:2018-07-07 09:34:18

标签: sql postgresql date datetime timestamp

日期列-日期时间类型。

我的查询是:

select * from car_db.car_parts where date::text LIKE '2018-07-06%'

我如何select where date <= 'YEAR-MONTH-DAY',而忽略时间?

我将不胜感激...

2 个答案:

答案 0 :(得分:2)

尝试以下方法。另外,您不应将列命名为日期。

select * from car_db.car_parts where cast("date" as date) < '2018-07-06'

答案 1 :(得分:2)

首先,Postgres不提供datetime类型。该类型称为timestamp。另外,Postgres具有非常方便的功能date_trunc(),因此您可以使用它:

select *
from car_db.car_parts
where date_trunc('day', date) = '2018-07-06'::date;

但是,此方法-或任何具有函数调用或类型转换的方法-会影响索引的使用。我强烈建议:

where date >= '2018-07-06'::date and
      date < '2018-07-07'::date