【发布时间】:2017-09-08 16:07:58
【问题描述】:
我想修改下面的查询以避免使用函数 Timestamp。由于正在使用此功能,因此未使用索引。请让我知道可以使用哪些替代品。此查询适用于 DB2 数据库。
SELECT *
FROM Capacity CPC
WHERE TIMESTAMP(CPC.CPC_DATE,CPC_TIME) BETWEEN
CURRENT TIMESTAMP + :Input_number HOURS
AND
CURRENT TIMESTAMP + :Input_number HOURS
【问题讨论】:
-
我认为您最好的选择是创建一个带有索引的计算
TIMESTAMP列,或者如果您的 DB2 版本支持,则创建一个功能索引。 -
旁注:请never use
BETWEENfor date/time types (帖子谈到SQL Server,但根本问题实际上与平台无关)。如果您对查询进行分页,这里主要关注的是获得相同的结果。日期/时间类型是正的、连续范围的类型,应始终使用独占上限 (<) 进行查询