033 TP5中非常有用的时间表达式

时间比较

使用where方法

where方法支持时间比较,例如:

  1. // 大于某个时间

  2. where('create_time','> time','2016-1-1');

  3. // 小于某个时间

  4. where('create_time','<= time','2016-1-1');

  5. // 时间区间查询

  6. where('create_time','between time',['2015-1-1','2016-1-1']);

第三个参数可以传入任何有效的时间表达式,会自动识别你的时间字段类型,支持的时间类型包括timestampsdatetimedateint

使用whereTime方法

whereTime方法提供了日期和时间字段的快捷查询,示例如下:

  1. // 大于某个时间

  2. db('user')

  3.    ->whereTime('birthday', '>=', '1970-10-1')

  4.    ->select();

  5. // 小于某个时间

  6. db('user')

  7.    ->whereTime('birthday', '<', '2000-10-1')

  8.    ->select();

  9. // 时间区间查询

  10. db('user')

  11.    ->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])

  12.    ->select();

  13. // 不在某个时间区间

  14. db('user')

  15.    ->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])

  16.    ->select();

时间表达式

还提供了更方便的时间表达式查询,例如:

  1. // 获取今天的博客

  2. db('blog')

  3.    ->whereTime('create_time', 'today')

  4.    ->select();

  5. // 获取昨天的博客

  6. db('blog')

  7.    ->whereTime('create_time', 'yesterday')

  8.    ->select();

  9. // 获取本周的博客

  10. db('blog')

  11.    ->whereTime('create_time', 'week')

  12.    ->select();  

  13. // 获取上周的博客

  14. db('blog')

  15.    ->whereTime('create_time', 'last week')

  16.    ->select();    

  17. // 获取本月的博客

  18. db('blog')

  19.    ->whereTime('create_time', 'month')

  20.    ->select();  

  21. // 获取上月的博客

  22. db('blog')

  23.    ->whereTime('create_time', 'last month')

  24.    ->select();      

  25. // 获取今年的博客

  26. db('blog')

  27.    ->whereTime('create_time', 'year')

  28.    ->select();    

  29. // 获取去年的博客

  30. db('blog')

  31.    ->whereTime('create_time', 'last year')

  32.    ->select();    

如果查询当天、本周、本月和今年的时间,还可以简化为:

  1. // 获取今天的博客

  2. db('blog')

  3.    ->whereTime('create_time', 'd')

  4.    ->select();

  5. // 获取本周的博客

  6. db('blog')

  7.    ->whereTime('create_time', 'w')

  8.    ->select();  

  9. // 获取本月的博客

  10. db('blog')

  11.    ->whereTime('create_time', 'm')

  12.    ->select();  

  13. // 获取今年的博客

  14. db('blog')

  15.    ->whereTime('create_time', 'y')

  16.    ->select();    

这个whereTime()就可以直接得到时间的范围,不用再获取开始和结束时间。

例如会生成如下语句:SELECT COUNT(*) AS tp_count FROM `think_member` WHERE `create_time` BETWEEN 1522512000 AND 1525104000;


欢迎微信关注:phpstory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值