使用where和whereTime方法进行时间的比较查询
where用法
// 查询大于等于指定时间的数据 Db::table('article')->where('create_time','>=','2020-12-10')->select(); // 查询小于指定时间的数据 Db::table('article')->where('create_time','<','2020-12-10')->select(); // 查询指定时间区的数据 Db::table('article')->where('create_time','between time',['2020-12-1','2020-12-10'])->select();
whereTime用法: 可以看用法其实和上面的where基本没什么区别
// 查询大于等于指定时间的数据 Db::table('article')->whereTime('create_time','>=','2020-12-10')->select(); // 查询小于指定时间的数据 Db::table('article')->whereTime('create_time','<','2020-12-10')->select(); // 查询指定时间区的数据 Db::table('article')->whereTime('create_time','between time',['2020-12-1','2020-12-10'])->select(); // 查询不在指定时间区的数据 Db::table('article')->whereTime('create_time','not between time',['2020-12-1','2020-12-10'])->select();
whereTime时间表达式,提供字符串标识符
重点是下面这些用法,非常经典,前端只需要提供字符串标识
下面这些实际上最终执行的是这样的sql语句,如果数据库的时间字段是时间戳形式的,真是用着非常爽
"SELECT COUNT(*) AS tp_count FROM `article` WHERE `create_time` BETWEEN 1577808000 AND 1609430399"
// 查询今天的文章 Db::table('article') ->whereTime('create_time', 'today')->select(); // 查询昨天的文章 Db::table('article')->whereTime('create_time', 'yesterday')->select(); // 查询本周的文章 Db::table('article')->whereTime('create_time', 'week')->select(); // 查询上周的文章 Db::table('article')->whereTime('create_time', 'last week')->select(); // 查询本月的文章 Db::table('article')->whereTime('create_time', 'month')->select(); // 查询上月的文章 Db::table('article')->whereTime('create_time', 'last month')->select(); // 查询今年的文章 Db::table('article')->whereTime('create_time', 'year')->select(); // 查询去年的文章 Db::table('article')->whereTime('create_time', 'last year')->select();
如果使用上面的whereTime查询当天、本周、本月和今年的时间,还有下面这些简写形式
// 查询今天的文章 Db::table('article')->whereTime('create_time', 'd')->select(); // 查询本周的文章 Db::table('article')->whereTime('create_time', 'w')->select(); // 查询本月的文章 Db::table('article')->whereTime('create_time', 'm')->select(); // 查询今年的文章 Db::table('article')->whereTime('create_time', 'y') ->select();
时间范围查询
// 查询两个小时内的文章 Db::table('article')->whereTime('create_time','-2 hours')->select();