【问题标题】:how to get the values of specified date range?如何获取指定日期范围的值?
【发布时间】:2017-08-11 10:42:25
【问题描述】:

我正在尝试从表中检索今天的值,在我的表中我创建了_at 列,这是插入行时自动分配的时间戳。我还有一个 send_at 列,我在其中手动插入日期时间,当我使用范围查询 send_at 时它可以工作,但是当我查询 created_at 列时,我什么也得不到。

  $campaigns = SmsCampaign::whereBetween('created_at', array('2017-03-20 12:00:00','2017-03-20 23:59:00'))->paginate(10);

        return view('sms_campaign.smscampaign')->with('campaigns', $campaigns);

型号:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class SmsCampaign extends Model
{


protected $table = 'sms_campaign';
protected $primaryKey = 'id';
//public $timestamps = false;
protected $fillable = [ 'campaign_name', 'content', 'phone_no_list',  'send_time', 'status', 'merchant_id', 'send_type'];




}

【问题讨论】:

    标签: mysql laravel phpmyadmin laravel-eloquent


    【解决方案1】:

    通过 Carbon 实例:

    SmsCampaign::whereBetween('created_at', [
            Carbon::parse('2017-03-20 12:00:00'),
            Carbon::parse('2017-03-20 23:59.00')
        ])->paginate(10);
    

    【讨论】:

    • 感谢 Alexey Mezenin 的答案,我试过了,我仍然一无所获
    • 相同的代码适用于“send_at”列,但不适用于“created_at”
    • @Alexey Mezenin 表格是手动创建并由模型连接的,请检查我的问题,我已为您附上表格
    • created_at 也应该是 timestamp
    • 是的,它之前也是时间戳,我只是再次更改它以进行测试。还是什么都没有:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多