Tsm-sporringsspor

Tsm-sporringsspor h1>

Fa via App Store Les dette innlegget i var app!

MySQL-sporring for a velge hendelser mellom start / sluttdato.

Jeg har en MySQL-tabell som heter «hendelser» som inneholder hendelsesdata. De viktige kolonnene er «start» og «slutt» som inneholder streng (AAAA-MM-DD) som representerer nar hendelsene starter og slutter.

Jeg vil fa rekordene for alle de aktive hendelsene i en tidsperiode.

Jeg provde mange sporringer, men jeg mislykkes i a fa den eksakte SQL-sporringen.

Vet du ikke hvordan du gjor det? Noen forslag?

Hvis jeg forsto riktig, prover du a bruke en enkelt sporring, jeg tror du kan bare sla sammen datorsokingen din i WHERE-klausuler.

eller enda enklere kan du bare bruke begge kolonnene til a sette soketidsfilter.

Du trenger hendelsene som starter og slutter innenfor omfanget. Men det er ikke alt: du vil ogsa ha hendelsene som starter innenfor omfanget og hendelsene som slutter innenfor omfanget. Men sa er du fortsatt ikke der fordi du ogsa vil ha hendelsene som starter for omfanget og slutter etter omfanget.

hendelser med startdato i omfangshendelser med en sluttdato i omfangshendelser med startdate for start mellom startdato og sluttdato.

Fordi punkt 2 resulterer i poster som ogsa oppfyller sporsmalet i punkt 3, trenger vi bare poeng 1 og 3.

Sa blir SQL:

Her mange gode svar, men jeg tror dette vil hjelpe noen.

Eller bruk MIN () og MAX () hvis du ikke vet forrangen.

Jeg antar at aktive hendelser i en tidsperiode betyr at minst en dag av hendelsen faller innenfor tidsperioden. Dette er et enkelt problem med «overlappende datoer», og det er en generell losning:

Hvis du vil bruke INTERSECT-alternativet, er SQL som folger.