Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyoal Projek Berulang dengan Cekap dalam 7 Hari Seterusnya dengan Laravel's $q->where() Between Dates?

Bagaimana untuk Menyoal Projek Berulang dengan Cekap dalam 7 Hari Seterusnya dengan Laravel's $q->where() Between Dates?

Susan Sarandon
Lepaskan: 2024-10-30 02:55:02
asal
323 orang telah melayarinya

How to Efficiently Query Projects Recurring in the Next 7 Days with Laravel's $q->di mana() Antara Tarikh? 
di mana() Antara Tarikh? " />

Laravel $q->where() antara tarikh: Panduan Komprehensif

Pernyataan Masalah

Pertanyaan $q-> ;dimana('recur_at', '>', date("Y-m-d H:i:s", time() - 604800)) tidak memenuhi kriteria yang diingini, iaitu untuk mendapatkan projek dengan nilai recur_at lebih besar daripada tarikh semasa tolak 7 hari.

Penyelesaian 1

Untuk mencari dengan tepat projek yang akan berulang dalam tempoh 7 hari akan datang, gunakan pertanyaan berikut:

<code class="php">$projects = Project::where(function($q) {
    $q->where(DB::raw('recur_at BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW()'));
    $q->where('status', '<', 5);
    $q->where('recur_cancelled', '=', 0);
});</code>
Salin selepas log masuk

Penyelesaian 2 (Dioptimumkan dengan Karbon)

Tingkatkan pertanyaan menggunakan pakej Karbon untuk manipulasi tarikh:

<code class="php">$projects = Project::where('recur_at', '<=', Carbon::now()->addWeek())
    ->where('recur_at', '!=', "0000-00-00 00:00:00")
    ->where('status', '<', 5)
    ->where('recur_cancelled', '=', 0);</code>
Salin selepas log masuk

Penyelesaian Dioptimumkan

Seperti yang dicadangkan oleh Joel Friedman, pertanyaan berikut adalah lebih ringkas dan cekap:

<code class="php">$projects = Project::whereBetween('recur_at', array(Carbon::now(), Carbon::now()->addWeek()))
    ->where('status', '<', 5)
    ->where('recur_cancelled', '=', 0);</code>
Salin selepas log masuk

Penyelesaian ini menggunakan kaedah whereBetween untuk menentukan julat bagi medan recur_at, dengan berkesan mendapatkan semula projek dengan nilai recur_at dalam masa 7 hari akan datang.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Projek Berulang dengan Cekap dalam 7 Hari Seterusnya dengan Laravel's $q->where() Between Dates?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan