thinkphp6中关于时间的查询方法
框架内置了常用的时间查询方法,并且可以自动识别时间字段的类型,所以无论采用什么类型的时间字段,都可以统一使用本章的时间查询用法。
- whereTime
用法一:查询今天的数据
$list = $userModel->whereTime('add_time','today')->select();
// 大于某个时间
Db::name('user') ->whereTime('birthday', '>=', '1970-10-1') ->select();
// 小于某个时间
Db::name('user') ->whereTime('birthday', '<', '2000-10-1') ->select();
// 时间区间查询
Db::name('user') ->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1']) ->select();
// 不在某个时间区间
Db::name('user') ->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1']) ->select();
// 查询两个小时内的博客
Db::name('blog')
->whereTime('create_time','-2 hours')
->select();
同理,替换参数today后可以查询昨天(yesterday)、本周(week)、下周(last week)、本月(month)、上月(last month)、本年(year)、上年(last year)日期的数据
同时,也有快捷的查询方法,分别为:
- whereDay
//今天数据,默认today
whereDay('add_time')
//昨天数据
whereDay('add_time','yesterday')
//2020-06-01数据
whereDay('add_time','2020-06-01')
- whereMonth
//本月数据,默认this month
whereMonth('add_time')
//上月数据
whereMonth('add_time','last month')
//某月数据
whereMonth('add_time','2020-06')
- whereWeek
//本周数据,默认this week
whereWeek('add_time')
//上周数据
whereWeek('add_time','last week')
- whereYear
//本年数据,默认this year
whereYear('add_time')
//上年数据
whereYear('add_time','last year')
//2020年数据
whereYear('add_time','2020')
用法二:查询X天前,x周,x月,x年前的数据
whereTime('add_time','-7 days')
用法三:使用自定义的日期
$userModel->timeRule(['tenDaysAgo'=>['1659888000','1660060800']])->whereTime('add_time', 'tenDaysAgo')->select();
- whereBetweenTime
whereBetweenTime('add_time','1659888000','1660060800')
- whereNotBetweenTime
// 查询2017年上半年注册的用户
Db::name('user')
->whereBetweenTime('create_time', '2017-01-01', '2017-06-30')
->select();
// 查询不是2017年上半年注册的用户
Db::name('user')
->whereNotBetweenTime('create_time', '2017-01-01', '2017-06-30')
->select();
- whereBetweenTimeField("开始字段","结束字段")

浙公网安备 33010602011771号