You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel查询MySQL时whereDate()与where()的区别及用法

Laravel中whereDate()与where()查询日期的区别

核心差异

  • whereDate():仅针对字段的日期部分做匹配,自动忽略时间戳里的时分秒信息。
  • where():进行完整的 datetime/timestamp 精确匹配,要求字段值与条件完全一致(包括时分秒)。

示例执行结果

  1. whereDate()示例:
$posts = Post::whereDate('created_at', Carbon::today())->get();

对应的SQL语句大致为:

SELECT * FROM posts WHERE DATE(created_at) = '2024-05-20';

返回当天任意时间创建的所有帖子,不管具体创建时间是几点几分。

  1. where()示例:
$posts = Post::where('created_at', Carbon::today())->get();

Carbon::today()生成的是当天00:00:00的时间戳,对应的SQL是:

SELECT * FROM posts WHERE created_at = '2024-05-20 00:00:00';

仅返回当天0点整精确创建的帖子,实际场景中几乎不会有符合条件的数据。

正确用法

若要获取今日创建的所有帖子(不考虑具体时间),必须使用**whereDate()**方法。

内容的提问来源于stack exchange,提问作者Malik Muhammad Awan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:57:05