cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menggunakan UNIX_TIMESTAMP untuk mendapatkan 7 hari sebelum 7 hari terakhir?

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粉549412038P粉549412038330 hari yang lalu437

membalas semua(1)saya akan balas

  • P粉955063662

    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)'

    balas
    0
  • Batalbalas