使用日期创建Postgresql索引

使用日期创建Postgresql索引,postgresql,postgresql-11,Postgresql,Postgresql 11,与此相关的。我想创建一个索引,返回与此查询相同的输出 ——2005年10月12日 选择日期(“月”,表中有日期。转移日期::日期)::日期 从带有日期的表_; --报税表2005-10-01 下面将索引,但返回的时间戳添加到日期,这不是我想要的 在带有日期的表上创建索引(date\u trunc('month',dateoftransfer::timestamp)); --返回2005-10-01 00:00:00 是否可以创建一个索引,以该格式返回没有时间戳的日期 返回值为timestam

与此相关的。我想创建一个索引,返回与此查询相同的输出

——2005年10月12日
选择日期(“月”,表中有日期。转移日期::日期)::日期
从带有日期的表_;
--报税表2005-10-01
下面将索引,但返回的时间戳添加到日期,这不是我想要的

在带有日期的表上创建索引(date\u trunc('month',dateoftransfer::timestamp));
--返回2005-10-01 00:00:00
是否可以创建一个索引,以该格式返回没有时间戳的日期

返回值为timestamp或interval类型,所有字段的有效性低于所选字段的值均设置为零

因此,您需要将
date\u trunc
的结果强制转换为日期:

create index on table_withdates  (date_trunc('month', dateoftransfer)::date);
请注意,为了使索引可用于查询,您需要使用完全相同的表达式,例如:

where date_trunc('month', dateoftransfer)::date  = ...

谢谢,但当我运行
时,从带有日期的表中选择日期(“月”,带有日期的表。传输日期::日期)它返回
2005-10-01 00:00:00+01
索引将是什么?传输日期是类型
date