Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage von SQL-Datumsintervallen

Wenn ich die Frage richtig verstehe, mit [:start, :end] Da Ihr Datumsbereich von Interesse ist, suchen Sie nach:

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;

Wenn Sie nach einem bestimmten :day suchen , verwenden Sie :day als :start und :day + 1 day als :end .