sql >> Database teknologi >  >> RDS >> Mysql

SQL-datointervaller forespørgsel

Hvis jeg forstår spørgsmålet rigtigt, med [:start, :end] da du er dit datointerval, leder du efter:

select *
 from event
where -- event started earlier, ends later
      start <= :start and :start <= end
   or -- event starts during [:start, :end]
      :start <= start and start <= :end
   or -- event ends during [:start, :end]  
      :start <= end and end <= :end;

Hvis du leder efter en bestemt :day , brug :day som :start og :day + 1 day som :end .



  1. Kan tabellen ikke afkortes, fordi den refereres af en FOREIGN KEY-begrænsning?

  2. AVG() Funktion i MariaDB

  3. NLS_INITCAP() Funktion i Oracle

  4. Sådan får du *alt* tilbage fra en lagret procedure ved hjælp af JDBC