选择行(“YYYYMMDD”字符串格式)< =今天

时间:2016-09-15 18:02:07

标签: mysql laravel select eloquent

我有表“结算”,列“X”包含YYYYMMDD(VARCHAR(8),我不是表的创建者)。

$today = Carbon\Carbon::now();

怎么做:

Select * from billing where X <= $today;

在Raw或Eloquent Laravel?

2 个答案:

答案 0 :(得分:1)

您可以使用str_to_date

 Select * from billing where str_to_date(X, '%Y%m%d') <= $today;

答案 1 :(得分:1)

将此视为数据库数据

enter image description here

这是你的模特

namespace App\Entities;

use Illuminate\Database\Eloquent\Model;

class Date extends Model 
{
    protected $fillable = [];

}

这是您的控制器代码

use App\Entities\Date;

public function check(Date $Date) 
    {

        $today = Carbon::now()->format('Y-m-d');

        $filterByDate = $Date->whereDate('dates','<=',$today)->get();

        dd($filterByDate);
    }

查询的数据结果是

enter image description here

中查询结果
select * from `dates` where date(`dates`) <= '2016-09-16'

对于雄辩的日期过滤器,请参阅this