Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan Peristiwa Pengulangan mySQL

Inilah sesuatu yang telah saya mainkan (dan ini dia sebagai sqlfiddle dengan beberapa data sampel)... tidak 100% yakin tentang itu, tetapi harus mengambil data 7 hari terakhir. Perhatikan bahwa saya menggunakan DATETIME MySQL versus stempel waktu bilangan bulat, tetapi Anda seharusnya dapat mengonversinya dengan mudah (untuk menguji kueri, jauh lebih mudah menggunakan tanggal string).

SELECT *
  FROM
    (SELECT 
      *, 
      CONCAT(YEAR(NOW()), '-', MONTH(NOW()), '-', DAY(start)) AS monthly,
      CONCAT(YEAR(NOW()), '-', MONTH(start), '-', DAY(start)) AS yearly
      FROM events
    ) tmp
  WHERE
    (
      (recurring = 'none')
      OR (recurring = 'daily')
      OR (recurring = 'weekly')
      OR (
        recurring = 'monthly'
        AND (
          (
            monthly >= NOW()
            AND monthly <= DATE_ADD(NOW(), INTERVAL 7 DAY)
          )
          OR (
            DATE_ADD(monthly, INTERVAL 1 MONTH) >= NOW()
            AND DATE_ADD(monthly, INTERVAL 1 MONTH) <= DATE_ADD(NOW(), INTERVAL 7 DAY)
          )
        )
      )
      OR (
        recurring = 'yearly'
        AND (
          (
            yearly >= NOW()
            AND yearly <= DATE_ADD(NOW(), INTERVAL 7 DAY)
          )
          OR (
            DATE_ADD(yearly, INTERVAL 1 YEAR) >= NOW()
            AND DATE_ADD(yearly, INTERVAL 1 YEAR) <= DATE_ADD(NOW(), INTERVAL 7 DAY)
          )
        )
      )
    )
    AND start <= NOW()
    AND (
      end IS NULL 
      OR end >= DATE_ADD(NOW(), INTERVAL 7 DAY)
    )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memeriksa konflik rentang tanggal di MySQL

  2. Bagaimana cara melewatkan hasil mysql sebagai jSON melalui ajax

  3. log4net logging error di database mysql logging

  4. Jenis atau nama namespace 'MySqlConnection' tidak dapat ditemukan (apakah Anda melewatkan petunjuk penggunaan atau referensi Majelis?)

  5. MySQL Perbarui beberapa baris pada satu kolom berdasarkan nilai dari kolom yang sama