关于mysql两种时间函数的对比
这两种函数是在sql日期选择中非常常用的函数,两个函数并不是只有格式区别,其中却有大坑
from_unixtime
该函数可以转换成我们常见的日期格式
举例
where from_unixtime(old_plan_fee_time2,’%Y-%m-%d’)<=date_sub(CURDATE(), interval 1 day)
and from_unixtime(old_plan_fee_time2,’%Y-%m-%d’)>=date_sub(CURDATE(), interval 30 day)
unix_timestamp
该函数是转换为时间戳格式
距离
where old_plan_fee_time2<=unix_timestamp(date_sub(CURDATE(), interval 0 day))
and old_plan_fee_time2>=unix_timestamp(date_sub(CURDATE(), interval 30 day) )
对比
如果你的日期字段带有索引,那么使用unix_timestamp进行日期操作运行速度会快很多,因为有索引的字段套了函数进行转化就无法引用索引
同时:细心的朋友应该注意到了我上面代码的区别
1.old_plan_fee_time2<=unix_timestamp(date_sub(CURDATE(), interval 0 day))和
2.from_unixtime(old_plan_fee_time2,’%Y-%m-%d’)<=date_sub(CURDATE(), interval 1 day)
这样子写一个0一个1,获得返回的日期才是相同的
距离,今天是7月2号,将1处的0改为1,那么只能获得六月30号的数据而无法获得七月一号的数据
大前提!old_plan_fee_time2为时间戳格式