13。数据库的时间查询
13。数据库的时间查询
1.传统方式
2.快捷方式
3.固定查询
4.其它查询
...
一.传统方式
1.可以使用>、<、>=、<=来筛选匹配时间的数据;
Db : :name('user')->where('create_time','>','2018-1-1')->select();
2.可以使用between关键字来设置时间的区间;
Db::name('user')->where('create_time','between', ['2018-1-1','2019-12-31'])->select();
Db::name('user')->where('create_time','not between',['2018-1-1','2019-12-31'])->select();
...
二.快捷方式
1.时间查询的快捷方法为whereTime(),直接使用>、〈、>=、<=;
Db::name('user')->whereTime('create_time','>','2018-1-1')->select();
此时,>可以省略,但省略后不清晰,不建议。
2.快捷方式也可以使用between和 not between;
Db::name('user')->whereBetween('create_time', ['2018-1-1','2019-12-31"])->select();
3.还有一种快捷方式为: whereBetweenTime()和 whereNotBetweenTime();
Db : :name('user')->whereBetweenTime('create_time','2018-1-1','2019-12-31')->select();
此时条件不能用数组,要用字符串,两个参数形式。
4.默认的大于>,可以省略;
Db::name('user')->whereTime('create_time','2018-1-1')->select();
但最好不要省略,省略后不清晰。
...
三.固定查询
1.使用whereYear查询今年的数据、去年的数据和某一年的数据
Db : :name( "user')->whereYear('create_time')->select(); //找今年的数据
Db : :name('user')->whereYear('create_time','last year')->select(); //找去年的数据
Db::name('user')->whereYear('create_time','2016')->select(); //找特定年份的数据
...
2.使用whereMonth查询当月的数据、上月的数据和某一个月的数据;
Db::name('user')->whereMonth('create_time')->select();
Db::name('user')->whereMonth('create_time','last month')->select();
Db::name('user')->whereMonth('create_time','2016-6')->select();
3.使用whereDay查询今天的数据、昨天的数据和某一个天的数据;
Db::name('user')->whereDay ('create_time')->select();
Db::name('user')->whereDay('create_time','last day')->select();
Db::name('user')->whereDay('create_time','2016-6-27')->select();
四.其它查询
1.查询指定时间的数据,比如两小时内的(当前时间-2小时);
Db::name('user')->whereTime('create_time','-2 hours')->select();
2.查询两个时间字段时间有效期的数据,比如会员开始到结束的期间;
Db::name('user')->whereBetweenTimeField('start_time','end_time')->select();
...
$user = Db: : name( name:'user')->whereBetweenTimeField('create_time','update_time')->select();
实际sql语句:SELECT *FROM tp_user'WHERE create_time'<= 2019-12-06 2005:57'AND'update_time'>= 2019-12-06 20:05:57'
Tag:
Thinkphp
Thinkphp笔记