select round(sum(INTEGRITY)/count(id),2) as twoQuarterINTEGRITY,companyId
from history_integrity
where time between '2018-04%' and '2018-06%'
谁能解决为什么取不到4月和6月的数值
不懂oracle.
不过是不是有6月没4月?
而且time字段是事件类型还是字符串类型?如果是时间类型干嘛加%
字符串类型大致上可以理解为只要满足前面的%后面出现的都不问
@不会写代码的小丑: 我觉得你不加百分号可能可以用.应该只有like才会认那个东西吧.他直接把%当成值对比了吧.我猜的.
@吴瑞祥: 没有,如果我改成07%,就可以取到06的时间的值,只是我很好奇,between确实是包含边界的,但这样写就不包含边界了,很是奇怪,不过我的问题已经解决了,只是这个问题有点懊恼,只是想搞明白
包含边界的
我知道包含边界的可是为什么取不到4月和6月的值
跑一下就知道包不包含啊~
1.首先确定4月,6月数据库中有值。
2.将4月和6月换掉其他数字,例如换成3月和7月,做数据测试
3.如果3月和7月中有4月和6月,没有3月和7月,那就是不包含边界,有,则包含。或者在测测
4.说那么多名词有啥用?有无边界需要去查去记么?自己动手,相信事实。
你这边只有年和月,看不出什么问题,是不是条件最终生成的是2018-06-01 00:00:00,所以找不到6月的数据,确认一下。
包涵的
包含是对的我知道,但是为什么我在日期后面加上%就不包含了这个是问题,虽然我也不知道为什么