作者:xiuhuashuai | 来源:互联网 | 2017-05-14 01:33
数据库表有一个字段create_time,类型是int(10) ,存储的是对应的时间戳。
这个数据表已经存放了一年多的数据了
现在我要查询:create_time字段每天下午14:00到20:00的所有记录,请问这个sql应该怎么写?
回复讨论(解决方案)
select * from 表 where FROM_UNIXTIME(create_time, '%H:%i') BETWEEN ‘14:00' and '20:00'
不建议数据库里存unix时间戳,像你这个业务就必须用到函数,执行效率会下降
select * from 表 where FROM_UNIXTIME(create_time, '%H:%i') BETWEEN ‘14:00' and '20:00'
between and可以对14:00到20:00的值进行比较?
学习了。感谢!
不建议数据库里存unix时间戳,像你这个业务就必须用到函数,执行效率会下降
这个我知道,但是没办法,这个是新加出来的业务,而且我还不能修改数据结构,如果可以,我想增加一个int字段,将时间段以分钟为单位或者以秒为单位分割成类似1~2359这样的不同类型,这样查询起来肯定最快