sql >> Databasteknik >  >> RDS >> Mysql

Välj värden mellan startdatum och slutdatum

Jag läser det här problemet som att jag letar efter överlappning av intervall:

så du har data inom intervallet:T1 till T3. Och letar efter överlappning med intervall T2 till T4. Eftersom de överlappar, vill du. Men om data är T1 till T3 och intervallet är T4 till T5 .. ingen överlappning så vill inte.

Du kan göra det med den här frågan:

Select id 
  from eventos_sapo 
 where startDate <= '2015-02-14'
   AND endDate >= '2013-01-03';

Så om det började efter det angivna datumet (14 februari 2015), inkludera det inte. eller om det slutade före 3 januari 2013 ... inkludera det inte. Inkludera allt annat eftersom det överlappar:

Som ett exempel:Data slutar efter det givna startdatumet för intervallet och datastartdatumet är före slutet, så det är ett av följande fall:

Data:           |---|
Given range:      |---|

Data:           |-------|
Given range:      |---|

Data:             |---|
Given range:    |---|

Data:             |---|
Given range:    |-------|


  1. Varför stöder inte NHibernate batchning på MySql

  2. Skapa MySQL-användare och databas från PHP

  3. Sammankoppla grupper i SQL Server

  4. Funktion eller procedur för en IN-klausul