tp5 日期范围查询_tp5 时间条件查询数据 whereTime的使用方法

本文介绍了一种使用数据库进行时间条件查询的方法,包括如何查询特定时间段内的数据,如今天、本周或本月的数据,并提供了多种时间范围的查询示例,如大于、小于及区间查询等。
部署运行你感兴趣的模型镜像

在项目开发中,我们可能会遇到按时间条件进行查询,比如在获取当月的数据,会获取当月的开始时间$start_month和结束时间$end_month

Db::name("表名")

->where('start_time','<= time',$end_month)

->where('end_time','>= time',$start_month)

->select();

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

// 大于某个时间

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

// 小于某个时间

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

// 时间区间查询

where('create_time','between time',['2019-1-1','2020-1-1']);

使用whereTime方法

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

// 大于某个时间

Db::table('think_user')->whereTime('birthday', '>=', '2019-10-1')->select();

// 小于某个时间

Db::table('think_user')->whereTime('birthday', 'select();

// 时间区间查询

Db::table('think_user')->whereTime('birthday', 'between', ['2019-10-1', '2020-10-1'])->select();

// 不在某个时间区间

Db::table('think_user')->whereTime('birthday', 'not between', ['2019-10-1', '2020-10-1'])->select();

时间表达式

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

// 获取今天的博客

Db::table('cs_blog') ->whereTime('create_time', 'today')->select();

// 获取昨天的博客

Db::table('cs_blog')->whereTime('create_time', 'yesterday')->select();

// 获取本周的博客

Db::table('cs_blog')->whereTime('create_time', 'week')->select();

// 获取上周的博客

Db::table('cs_blog')->whereTime('create_time', 'last week')->select();

// 获取本月的博客

Db::table('cs_blog')->whereTime('create_time', 'month')->select();

// 获取上月的博客

Db::table('cs_blog')->whereTime('create_time', 'last month')->select();

// 获取今年的博客

Db::table('cs_blog')->whereTime('create_time', 'year')->select();

// 获取去年的博客

Db::table('cs_blog')->whereTime('create_time', 'last year')->select();

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

// 获取今天的博客

Db::table('cs_blog')->whereTime('create_time', 'd')->select();

// 获取本周的博客

Db::table('cs_blog')->whereTime('create_time', 'w')->select();

// 获取本月的博客

Db::table('cs_blog')->whereTime('create_time', 'm')->select();

// 获取今年的博客

Db::table('cs_blog')->whereTime('create_time', 'y') ->select();

V5.0.5+版本开始,还可以使用下面的方式进行时间查询

// 查询一个小时内的博客

Db::table('cs_blog')->whereTime('create_time','-1 hours')->select();

其实类似的where方法还有很多,比如whereOr,whereNull,whereLike等,具体字段作用如下图:

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### ThinkPHP 5.1 中的时间查询条件 在ThinkPHP 5.1框架内,构建时间查询条件可以通过`where`方法实现。此方法允许开发者灵活地设置各种类型的查询条件,包括基于时间的过滤[^1]。 对于具体的时间字段查询,通常会涉及到日期比较运算符,如大于、小于等于等。下面是一个利用`where`方法进行时间范围查询的例子: ```php // 假设有一个名为"log"的数据表,其中"time"列存储着日志记录的时间戳。 $startTime = strtotime('2023-01-01'); $endTime = strtotime('2023-12-31'); Db::name('log') ->where('time', '>=', $startTime) ->where('time', '<=', $endTime) ->select(); ``` 上述代码展示了如何选取特定时间段内的数据条目。这里采用了两个独立的`where`调用来分别指定起始时间和结束时间作为筛选标准[^5]。 为了简化多个相同字段不同值之间的逻辑关系表达,在实际应用中还可以采用更简洁的方式——通过传递数组形式来定义复合条件: ```php $timeRange = [ ['time', '>', strtotime('2023-01-01')], ['time', '<', strtotime('2023-12-31')] ]; Db::name('log')->where($timeRange)->select(); ``` 这种方式不仅提高了可读性,而且使得维护更加方便。 当需要处理更为复杂的情况时,比如涉及当前时刻之前或之后一定间隔期的日志项,则可以借助于内置函数动态计算目标时间节点并将其嵌入到查询语句之中: ```php // 获取过去7天内的活动记录 (Db::name('activity')) ->whereTime('create_time', '> time()-7*24*60*60') ->select(); // 或者使用between and 来表示一个闭合区间 (Db::name('activity')) ->whereTime('create_time', 'between time()', 'time()-(7*24*60*60)') ->select(); ``` 这里的`whereTime()`是一种特殊的辅助方法,专门用于处理带有时间属性的字段,并能接受相对时间描述作为参数输入[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值