用模糊查询数据库时间字段为啥查询不出来数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用模糊查询数据库时间字段为啥查询不出来数据?相关的知识,希望对你有一定的参考价值。

我用'%2010%'这样的可以 但是使用'2010-07-06'这样的就是空的。为什么?

参考技术A 这跟数据库有关,如果是像mysql,d like '%date%'是能完成模糊查询的功能,但像oracle的数据库,这样的语句就未必能完成,不过你可以试着to_char函数来实现类似的功 能:to_char(date, 'yyyy-MM-dd') like '2010-07-06',也可以通过to_date函数来实现: date like to_date('2010-7-6','yyyy-MM-dd') 参考技术B 请你说清楚点、%2010% 这是模糊查询 这样能查出数据 你的提问时 查不出来 用2010-07-06 这不是模糊查询 参考技术C between 或者 < > 或者convert(varchar,fieldname,120) like '2010-07-06%'

mybatis 查询时间时候为啥用不到时间字段上的索引

因为时间列的值一般选择性较高(即重复值较少),这样查询优化器会先考虑用索引进行检索
除非索引碎片达到一定等级,查询优化器认为表扫描比索引查询快时就不用了
还有,纠正你一点小问题,结束时间不要加00:00:00,这样会将第二天的0点数据也包括在内
虽然概率很低,但情况存在
-------------------
你把列进行转换就用不到索引了,因为转换后的列值无论与数据页还是缓存上存储的都不一致
优化器需要重新扫描表并进行计算,所以一般对列进行函数操作再会慢
参考技术A 有代码吗?

以上是关于用模糊查询数据库时间字段为啥查询不出来数据?的主要内容,如果未能解决你的问题,请参考以下文章

请教mysql模糊查询两边都用%为啥用不到索引?

关于sql模糊查询(全字段)

Mongodb模糊查询返回有查询到内容的字段?

怎样在sql2000的数据库里模糊查询某个字段是在那个表

sqlserver 插入完整的数据后,为啥查询出来某个字段为只显示一半

mysql 数据库中已经有汉字了 我想用模糊查询 按照首字母把 数据内容调出来 使用啥语句啊?