Rumah > Soal Jawab > teks badan
Saya menggunakan kod di bawah untuk mengembalikan hasil daripada medan mySQL yang dipanggil registered_at supaya saya boleh mendapatkan pengguna yang telah mendaftar di tapak dalam tempoh 7 hari yang lalu dan ia berfungsi dengan baik:
andWhere('registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)')
Masalah saya ialah saya juga perlu mendapatkan pengguna yang telah mendaftar di laman web dalam tempoh 7 hari yang lepas. Logiknya adalah untuk menunjukkan pengguna berdaftar selama 2 minggu yang lalu supaya seterusnya saya boleh mengeluarkan perbezaan antara 2 minggu ini sebagai peratusan, sebagai contoh: 10% lagi pengguna minggu ini.
Saya mencuba sesuatu yang serupa:
andWhere('registered_at > UNIX_TIMESTAMP((NOW() - INTERVAL 14 DAY) - (NOW() - INTERVAL 7 DAY))')
Tetapi tiada kejayaan.
P粉9550636622024-01-30 00:54:09
Anda boleh menggunakan:
andWhere('registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 14 DAY)') andWhere('registered_at < UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)')
Ini akan menjana registered_at
的查询,但也会修剪过去 7 天的 registered_at
yang mendapat 14 hari terakhir, jadi anda akan mengekalkan selang 7-14 hari.
Jika kita menukar ini kepada pertanyaan SQL "mentah", ia akan menjadi:
SELECT * FROM users WHERE registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 14 DAY)' AND registered_at < UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)'