项目中经常会使用到的筛选条件是根据起始时间的范围去查询相应的记录。比如:查询'2016-02-20'-'2016-02-24',这个范围内完成的订单等。
前提条件:项目中的表(例如:t_order订单表)中涉及到的关于时间的字段(call_date 订单叫车时间),类型一般置为datetime(精确到时分秒 2016-02-24 10:03:55),而不是date(精确到某一天 2016-02-24)。
问题:1.筛选条件起始时间查询精确到某一天 '2016-02-24',然而数据库中的t_order订单表中叫车时间call_date存
储的是精确到时分秒 2016-02-24 10:03:55。针对这种情况应该如何处理?
解决办法:
使用DATE_FORMAT(call_date,'%Y-%m-%d'),将call_date中的数据’2016-02-24 10:03:55‘转变为'2016-02-24'
select * from t_order WHERE
DATE_FORMAT(call_date,'%Y-%m-%d') >= '2016-01-21'
AND DATE_FORMAT(call_date,'%Y-%m-%d') <= '2016-01-22'
在mapper中的使用:
2.筛选条件起始时间查询精确到时分秒 '2016-02-24 10:03:55'
这个比较简单,select CALL_DATE from t_order WHERE call_date >= '2016-01-22 09:00:00' AND
call_date <= '2016-01-22 17:00:00'