laravel, преобразовать сохраненный формат даты в модель, чтобы использовать где - PullRequest
1 голос
/ 17 января 2020

Я хочу использовать whereBetween для получения интервала даты, для созданного_дата он работает нормально:

$data = Userorder::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get();

Но у меня есть другое имя столбца порядковый номер , где этот столбец имеет дату в формате : Пт Ян, 24,2020 , поэтому я хочу преобразовать его в формат Ymd

$dateS = new Carbon($startdate);
$dateE = new Carbon($enddate);
$data = Userorder::whereBetween('order_date', [$dateS->format('Y-m-d'), $dateE->format('Y-m-d')])->get();

Модель:

class Userorder extends Model
{
    protected $table = "userorders";
    protected $fillable = [
        'order_number',
        'product_id',
        'order_time',
        'order_date',
        'product_qty',
        'product_price',
        'product_totalprice',
        'totalprice',
        'product_instruction',
        'product_size',
        'storeinfo_id',
        'product_serve',
        'user_id',
        'user_distance',
        'user_address',
        'user_instruction',
        'office_name',
        'st_address',
        'order_state',
        'order_city',
        'order_zipcode',
        'gratuity',
        'suite_floor',
        'driver_ask',
        'phone_number',
        'paid',
        'isdelivery',
        'deliveredon',
        'show',
        'confirmed',
        'isonline',
        'houseaccount'
    ];
    protected $primaryKey = 'id';
    public $timestamps = true;

1 Ответ

0 голосов
/ 18 января 2020

Чтобы достичь того, что вам нужно, вы должны иметь возможность использовать метод Laravel s whereRaw () в сочетании с MySQL ' STR_TO_DATE () функцией ( mysql строки формата даты ):

Userorder::whereRaw('STR_TO_DATE(order_date, "%a %b,%d,%Y") between ? and ?', [$dateS->format('Y-m-d'), $dateE->format('Y-m-d')])->get();

При этом, если возможно, я бы порекомендовал обновить вашу таблицу (и соответствующий код), чтобы order_date на самом деле date столбец, а не просто строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...