postgresql - 使用 date_trunc 创建 Postgresql 索引
问题描述
涉及到这个问题。我想创建一个返回与此查询相同的输出的索引;
--takes 2005-10-12
select date_trunc('month',table_withdates.dateoftransfer::date)::Date
from table_withdates;
--returns 2005-10-01
下面将索引但返回时间戳添加到日期,这不是我想要的。
create index on table_withdates (date_trunc('month', dateoftransfer::timestamp));
--returns 2005-10-01 00:00:00
是否可以创建一个索引,以该格式返回没有时间戳的日期
解决方案
返回值的类型为时间戳或间隔,所有比所选字段不重要的字段都设置为零
因此,您需要将结果date_trunc
转换为日期:
create index on table_withdates (date_trunc('month', dateoftransfer)::date);
请注意,为了使索引可用于查询,您需要使用完全相同的表达式,例如:
where date_trunc('month', dateoftransfer)::date = ...
推荐阅读
- azure - 限制来自 Blob 存储中静态网站的 Azure 函数调用?
- python - 在 Django 中过滤由关系(set.all)返回的对象
- angular - 如何使用主机监听器获取 mat select nativeelement.value?
- javascript - Axios json 响应未定义
- reactjs - 错误:文件夹不包含名为“Navbar1”的导出
- spring-boot - 将 Kotlin Gradle Spring Boot 部署到 Heroku 但不在本地主机上后出现 404
- kotlin - 使用 Kotlin 中的高阶函数在 try catch 中包装函数
- react-native - 日历条的行为不正常
- php - 2个日期之间的选定天数作为php中的每周周期
- mongodb - 在 Mongoose 中创建文档时将计算的子文档添加到数组的最佳方法?