cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyemak sama ada tarikh adalah pada masa hadapan, untuk lajur tarikh dan masa yang berasingan?

<p>Saya mempunyai dua lajur untuk menyimpan tarikh: satu ialah tarikh itu sendiri dalam format YYYY-mm-dd, dan satu lagi ialah jenis data masa dalam masa(7), cth. 11:15:10.0000000. <br /><br />Bagaimanakah saya hendak menyemak baris masa hadapan? <br /><br />Saya boleh mendapatkan bahagian pertama, tarikh itu sendiri: </p><p><br /></p> <pre class="brush:php;toolbar:false;">MyModel::where('date', '>=', Carbon::today())->get()</pre> <p>Tetapi apabila saya cuba menambah masa, ia tidak berfungsi: </p> <pre class="brush:php;toolbar:false;">MyModel::where('date', '>=', Carbon::today())->where('time', '> ;', Carbon::now()->format('H:i'))->get()</pre> <p>Oleh kerana ia berasingan, walaupun tarikhnya pada masa hadapan, masa adalah berasingan, jadi mungkin terdapat ketidakpadanan masa. Jadi saya perlu menggabungkan tarikh dan masa yang dikaitkan dengannya bersama-sama, bukan secara berasingan. </p>
P粉021854777P粉021854777513 hari yang lalu561

membalas semua(1)saya akan balas

  • P粉651109397

    P粉6511093972023-08-01 16:21:09

    Cuba gabungkan dua lajur menjadi satu syarat.

    $now = Carbon::now();
    
    MyModel::whereRaw("CONCAT(`date`, ' ', `time`) >= ?", [$now->toDateTimeString()])->get();

    Untuk SQL Server, cuba yang berikut.

    MyModel::whereRaw("CONVERT(datetime, date + ' ' + CONVERT(varchar, time, 121)) >= ?", [$now->toDateTimeString()])->get();

    Transformasi pertanyaan mungkin perlu dikemas kini, sila semak dokumentasi untuk mendapatkan maklumat lanjut.

    balas
    0
  • Batalbalas