【问题标题】:Laravel 5 : How to retrieve records according to date?Laravel 5:如何根据日期检索记录?
【发布时间】:2015-03-20 07:24:05
【问题描述】:

我有一个名为entries 的表,它的created_at 被定义为DATE 类型。如何获得记录,例如 3 月 15 日?


我的尝试

        $post = Entry::where(\DB::raw('DATE(created_at)'),'=',date('2015-03-15'))->get()->toJSON();

但它返回空结果。


迁移

    Schema::create('entries', function(Blueprint $table)
    {
        $table->increments('id');
        $table->integer('intern_id');
        $table->integer('company_id');
        $table->longText('content');
        $table->date('created_at')->unique();
        $table->date('updated_at')->unique();
    });

目前有 3 条记录,日期分别为 2015-03-152015-03-192015-03-20

【问题讨论】:

  • 我们可以看看一些示例数据吗?还有什么是Entry的表迁移?
  • @Chris 问题已按要求编辑。
  • 你可以试试:Entry::where('created_at', '>=', '2015-03-15 00:00:00')->get()

标签: php laravel eloquent laravel-5


【解决方案1】:

使用这个

$post = Entry::where("created_at","2015-03-15")->get()->toJSON();

【讨论】:

  • 它仍然返回一个空结果。这是 SQL:select * from 'entries' where 'created_at' = 2015-03-15
  • 但是,当我在两者之间添加 >= 符号时,它只返回最近的记录,而它应该返回所有 3 条记录,因为所有 3 条记录的日期 >= 到 3 月 15 日。
  • created_date 的数据类型是什么?
  • 嘿,将您的答案更新为原始答案,我会将您的答案标记为正确的。我去了你原来的答案,然后又试了一次,它奏效了。我想我一开始就打错了你的。对此感到抱歉。
【解决方案2】:

你可以使用这个表格:

$post = Entry::where('created_at', '>=', '2015-03-15')->get()->toJSON();

碳更新

    $date = \Carbon\Carbon::create(2015, 3, 13, 0, 0, 0);

    $u = Entry::where('created_at', '>=', (string) $date)
        ->where('created_at', '<', (string) $date->addDays(1))
        ->get()
        ->toJSON();

【讨论】:

  • 它只获取日期为2015-03-20的最新记录。它应该已经获得了所有 3 条记录,对吧?无论如何,我只想获得日期为2015-03-15 的记录
  • 对于记录相等,您可能需要添加一个附加子句,因为日期在 laravel 中存储为时间戳。所以&gt;= 2015-03-15 00:00:00&lt;= 2015-03-15 23:59:99。但如果你开始做这样的事情,是时候看看 Carbon
  • 好吧,如果你能在 Carbon 中更新你的答案,我会很高兴。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 2019-10-04
相关资源
最近更新 更多