时间问题

image.png

现在报表内是这样的格式,sql条件本来写的是 时间字段>=开始日期 and 时间字段<=结束日期但是因为数据比较多,这样写的话时间字段不能走索引,有没有什么好方法?或者怎么能把开始时间和结束时间转换为这样的sqlimage.png

FineReport 用户DRQXF9153762 发布于 2023-2-25 16:55
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
luojian0323Lv7资深互助
发布于2023-2-25 17:15

你这样查询效率会比between and 效率高吗?

  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 条件多了确实也不高。。一样的
    2023-02-26 10:35 
  • luojian0323 luojian0323 回复 用户DRQXF9153762(提问者) or 条件和 模糊查询 加起来效率最差
    2023-02-26 10:38 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 回复 luojian0323 哈哈哈哈哈哈我知道为啥我运行这个快了,因为我用的=搜的是xxx%
    2023-02-26 10:44 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-25 18:09

你怕是对数据库走索引有什么误会了吧?你截图的这样效率是高的?你从哪里学来的,如果你的数据库里面是日期字段,而且有索引,那么就是直接

where mytime >='2022-01-01'

and mytiem <'2023-01-01'

这样的效率是高的,而且会走索引的呀。你是数据库,还用or与like效率才是高的?这么特殊的数据库?

  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 这样大于等于 和小于等于我尝试了走不了索引,可能是因为数据占比比较高。我单独走了截图这样的几个时间是可以走的,多了确实效率也不高。
    2023-02-26 10:34 
  • CD20160914 CD20160914 回复 用户DRQXF9153762(提问者) 我使用没有这个问题的。我的数据在6000万没有你说的这个情况
    2023-02-26 11:08 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 回复 CD20160914 emmm我查看的资料大概是这么个意思,比如这个表100万数据,这种大于小于的字段数据超过了总数据的百分之多少 二十还是三十,语句就会变成全表搜索,不走索引了。
    2023-02-26 16:39 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 我在索引里单挂一个时间他都不走索引QAQ
    2023-02-26 16:42 
  • CD20160914 CD20160914 回复 用户DRQXF9153762(提问者) 不知道你的语句是如何写的。不知道你是什么数据库,反正我没有遇到你说的这个情况
    2023-02-26 16:49 
  • 3关注人数
  • 284浏览人数
  • 最后回答于:2023-2-25 18:09
    请选择关闭问题的原因
    确定 取消
    返回顶部