1
回答
关于MYSQL中时间列作为索引的问题
注册华为云得mate10,2.9折抢先购!>>>   
MYSQL 中,我有一张表,里面有时间列,gid ,pid,cid,但是后面3个不能作为索引,所以只能用时间作为索引,但是我的存储过程中会应用要时间对比,只有一个,是传入的时间与表中时间差为0,也就是datediff=0,现在能不能帮我想个方法,能where date=方法(传入时间)  谢谢了~~
举报
秋到尽头
发帖于5年前 1回/4K+阅
共有1个答案 最后回答: 5年前

1、datediff函数是日期差值,精确到天,并不能精确到时间

2、where date=某个时间,这个是正常用法,必须可以使用

3、如果想查当天或者某天的数据,假设日期变量为cur_date

where date>=cur_date and date<date_add(cur_date,interval 1 day)

--- 共有 2 条评论 ---
八宝旗回复 @秋到尽头 : datediff(date,i_date)=0 这样用不到索引 想用索引,参照上面的3,替换下变量就行 where date>=i_date and date<date_add(i_date,interval 1 day) 5年前 回复
秋到尽头我datediff就是来算传进来的时间是不是跟表中的数据是一天的,我现在的算法就是datediff(date,i_date)=0,(i_date是传入参数)。我现在就是要把表中的date作为索引,所以算法要遍,不能动date,还要判断date和i_date是同一天 5年前 回复
顶部