请选择 进入手机版 | 继续访问电脑版

数字之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 127|回复: 0

4.10时间查询

[复制链接]
  • TA的每日心情
    开心
    2019-5-7 14:15
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    396

    主题

    399

    帖子

    1860

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1860
    admin实名认证 发表于 2019-2-25 15:32:00 | 显示全部楼层 |阅读模式
    5.0的查询语言强化了对时间日期字段的查询支持,对>time和between time查询表达式进行了快捷封装。
    例如:
    1. // 查询创建时间大于2016-1-1的数据$result = Db::name('data')
    2.     ->whereTime('create_time', '>', '2016-1-1')
    3.     ->select();
    4. dump($result);

    5. // 查询本周添加的数据$result = Db::name('data')
    6.     ->whereTime('create_time', '>', 'this week')
    7.     ->select();
    8. dump($result);

    9. // 查询最近两天添加的数据$result = Db::name('data')
    10.     ->whereTime('create_time', '>', '-2 days')
    11.     ->select();
    12. dump($result);

    13. // 查询创建时间在2016-1-1~2016-7-1的数据$result = Db::name('data')
    14.     ->whereTime('create_time', 'between', ['2016-1-1', '2016-7-1'])
    15.     ->select();
    16. dump($result);
    复制代码
    日期查询对字段类型没有要求,可以是int/string/timestamp/datetime/date中的任何一种,系统会自动识并进行处理,你要你确认该字段存储的是时间和日期内容。
    whereTime方法的优势不仅如此,更为重要的是还可以支持使用人性化日期查询方法,格式为:
    whereTime('日期字段名','日期表达式')
    支持的日期表达式包括:
    QQ图片20190225152630.png
    下面是一些示例代码:
    1. // 获取今天的数据$result = Db::name('data')
    2.     ->whereTime('create_time', 'today')
    3.     ->select();
    4. dump($result);  

    5. // 获取昨天的数据$result = Db::name('data')
    6.     ->whereTime('create_time', 'yesterday')
    7.     ->select();
    8. dump($result);  

    9. // 获取本周的数据$result = Db::name('data')
    10.     ->whereTime('create_time', 'week')
    11.     ->select();   
    12. dump($result);      

    13. // 获取上周的数据$result = Db::name('data')
    14.     ->whereTime('create_time', 'last week')
    15.     ->select();
    16. dump($result);   
    复制代码
    除了上述时间表达式之外,还可以支持任何有效的时间日期表达式(从thinkphp5.0.5+开始),默认会按照大于该时间表达式代表的时间进行时间和日期查询。
    1. // 获取10小时之前到现在的数据$result = Db::name('data')
    2.     ->whereTime('create_time', '10 hours ago')
    3.     ->select();
    4. dump($result);  
    复制代码
    这些都会在实际开发中不断的探索。
    maomivip@mail.com
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|寿光赢创志诚信息技术有限公司 ( 鲁ICP备19000917号 )

    GMT+8, 2019-5-22 23:15 , Processed in 0.074936 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表