使用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();