查询2个日期间的记录,如何才能利用到SQL的索引?
问题:用SQL2000建立的数据表,其中有一个: 派工时间 的smalldatetime类型的字段,需要经常用以下语句查询2个日期之间的记录:
例如:要查询派工时间在2017.09.10 到2017.09.16之间的所有派工记录:
XIN1=开始日期 &&2017.09.10
XIN2=结束日期 &&2017.09.16
SQLEXEC(CON,"SELECT * FROM PGK WHERE CONVERT(VARCHAR(100),派工时间,23) BETWEEN ?XIN1 AND ?XIN2 ")
为此在SQL中建立了:派工时间 字段的索引文件
由于SQL2000没有纯日期型字段,所以要查询2个日期间的记录时必须要用 CONVERT(VARCHAR(100),派工时间,23)函数把派工时间字段转换为不带时间的纯日期型,才能正确返回查询记录。
但好像如果在SQL查询条件中使用函数就不会利用到已建立的索引文件,而是逐条查询,这样按派工时间建立的索引文件就没用了,还浪费了资源。
我想请大师给指点一下,对于SQL的smalldatetime类型的字段,如何才能在2个日期间查询时能利用到已建立的索引文件? 谢谢!