Bagaimana untuk menggunakan UNIX_TIMESTAMP untuk mendapatkan 7 hari sebelum 7 hari terakhir?
P粉549412038
P粉549412038 2024-01-29 08:51:42
0
1
430

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粉549412038
P粉549412038

membalas semua(1)
P粉955063662

Anda boleh menggunakan:

andWhere('registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 14 DAY)')
andWhere('registered_at 

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 
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan