我想通过表达式从表中获取所有行:
table.date <= 2014-07-10
但是,如果该列包含日期时间,可以这样说:
2014-07-10 12:00:00
但是如果我这样做:
where('date', '<=', $date)
它不会排。
我猜这是因为$ date = 2014-07-10,这使MySQL假设它是2014-07-10 00:00:00。
在普通的MySQL中,我会做
where DATE(date) <= $date
使用Laravel的口才相当于什么?
Laravel
4+为您提供这些方法:whereDay()
,whereMonth()
,whereYear()
(#3946)和whereDate()
(#6879)。
他们DATE()
为您完成SQL 工作,并管理SQLite的差异。
您的结果可以这样实现:
->whereDate('date', '<=', '2014-07-10')
有关更多示例,请参见#3946的第一条消息以及此Laravel
Daily文章
。
更新:
尽管上述方法很方便,但正如Arth所指出的那样,它在大型数据集上效率不高,因为DATE()
必须在每个记录上应用SQL函数,从而丢弃了可能的索引。
以下是进行比较的一些方法(但请阅读以下说明):
->where('date', '<=', '2014-07-10 23:59:59')
->where('date', '<', '2014-07-11')
// '2014-07-11'
$dayAfter = (new DateTime('2014-07-10'))->modify('+1 day')->format('Y-m-d');
->where('date', '<', $dayAfter)
笔记:
问题内容: 我想比较两个日期和时间,我想要所有结果 但这只是比较日期而不是时间。它给了我今天日期的所有结果集 提前致谢! 问题答案: 您要显示的查询示例: 04:00:00是4AM,所以您显示的所有结果都 在 那 之后 ,这是正确的。 如果要在下午4点之后显示所有内容,则需要在查询中使用正确的(24hr)表示法。 为了使事情更清晰,请尝试以下操作: 这将向您显示日期及其12小时时间。
问题内容: 在我的收藏夹中,每个文档都有2个修改和同步的日期。我想查找已修改>同步,或不存在同步的内容。 我试过了 但没有显示我的期望。有任何想法吗? 谢谢 问题答案: 您不能将一个字段与具有正常查询匹配的另一个字段的值进行比较。但是,您可以使用聚合框架执行此操作: 我在其中输入“您的其他常规查询”,因为您可以使该位使用索引。因此,如果您只想对该字段所在的文档执行此操作,则可以执行以下操作: 用输
我需要比较MySQL中的日期,忽略列中的时间部分。我尝试了以下SQL。 即使MySQL表中有日期,它也不会检索任何行。在MySQL中比较日期时,如何忽略字段中的时间部分?
问题内容: 我正在使用moment.js格式化我的日期时间,这里有两个日期值,当一个日期大于另一个日期时,我想实现一种特定的功能。我阅读了他们的大多数文档,但没有找到实现此目的的功能。我知道会在那里。 这是我的代码: 编辑 在这里,我正在比较两个日期,即,期望第一个日期大于第二个日期,但是它总是转到else条件。不知道为什么 问题答案: 我相信你正在寻找的查询功能,,,和。 但是要确切地说出您要尝
我正在使用moment.js格式化我的日期时间,这里我有两个日期值,当一个日期大于另一个时,我想实现一个特定的函数。我读了他们的大部分文档,但没有找到实现这一点的函数。我知道它会在那里。 这是我的代码: 编辑 在这里,我比较了两个日期,即,希望第一个日期大于第二个日期,但它总是转到else条件。我不知道为什么?
我有一个java实体类TimeEntry.java它的属性之一是Date,它看起来像这样。 对于该字段,在swagger UI模型模式上,字段日期显示为“日期”:“2016-01-08T22:34:22.337Z”,但我需要该字段作为“日期”:“2016-01-08”。 我尝试了以下方法: 请帮帮忙。