laravel怎么在Eloquent模型中使用whereDate和whereMonth_laravel Eloquent whereDate/whereMonth使用方法

答案是使用 wheredate 和 whereMonth 方法可按日期或月份筛选数据,如 User::wheredate(‘created_at’, ‘2024-04-05’) 查询指定日期记录,User::whereMonth(‘created_at’, 5) 查询 5 月数据,支持比较操作和链式组合条件。

laravel怎么在Eloquent模型中使用whereDate和whereMonth_laravel Eloquent whereDate/whereMonth使用方法

laravel 的 Eloquent 模型中,你可以直接使用 whereDatewhereMonth 方法来对日期字段进行条件查询。这些方法属于 Laravel 查询构造器的一部分,适用于处理 mysql 中的 DATE、DATETIME 类型字段。

whereDate 使用方法

当你需要根据日期(年-月-日)筛选数据时,比如查找某一天创建的所有用户:

 User::whereDate('created_at', '2024-04-05')->get(); 

这会生成类似 SQL:

 SELECT * FROM users WHERE DATE(created_at) = '2024-04-05'; 

你也可以使用比较操作符:

 User::whereDate('created_at', '>=', '2024-01-01')->get(); 

whereMonth 使用方法

如果你只想按月份筛选,比如查找所有在 5 月注册的用户:

 User::whereMonth('created_at', '5')->get(); 

支持补零写法,以下等价:

laravel怎么在Eloquent模型中使用whereDate和whereMonth_laravel Eloquent whereDate/whereMonth使用方法

无阶未来模型擂台/AI 应用平台

无阶未来模型擂台/AI 应用平台,一站式模型+应用平台

laravel怎么在Eloquent模型中使用whereDate和whereMonth_laravel Eloquent whereDate/whereMonth使用方法35

查看详情 laravel怎么在Eloquent模型中使用whereDate和whereMonth_laravel Eloquent whereDate/whereMonth使用方法

  • whereMonth('created_at', 5)
  • whereMonth('created_at', '05')

也支持比较操作:

 User::whereMonth('created_at', '>=', 3)->get(); // 第二季度及以后 

组合使用多个日期条件

你可以链式调用这些方法实现更复杂的查询,例如查找 2024 年 4 月注册的用户:

 User::whereYear('created_at', 2024)      ->whereMonth('created_at', 4)      ->get(); 

或者结合 whereDate 精确到天:

 User::whereDate('created_at', '>=', '2024-04-01')      ->whereDate('created_at', '<=', '2024-04-30')      ->get(); 

注意事项

  • 这些方法底层调用的是 MySQL 的 DATE()MONTH() 函数,因此会影响索引使用效率,大数据量下建议配合日期范围优化。
  • 字段必须是合法的日期或时间类型,如 created_atupdated_at 或自定义的 datetime 字段。
  • 如果使用了访问器(accessor)修改了日期格式,需注意原始字段仍要可被数据库函数处理。

基本上就这些,Laravel 的 whereDate 和 whereMonth 让日期查询变得非常直观和简洁。

上一篇
下一篇
text=ZqhQzanResources