Ho bisogno di una query in SQL.
Se ho due colonne STARTDATE
e END_DATE
.
Desidero selezionare tutte le righe in cui una data rientra tra queste due date.Seleziona data tra due colonne
e.g .: startdate = 1/1/2011 AND enddate = 2/2/2011.
Ho bisogno di una query in SQL.
Se ho due colonne STARTDATE
e END_DATE
.
Desidero selezionare tutte le righe in cui una data rientra tra queste due date.Seleziona data tra due colonne
e.g .: startdate = 1/1/2011 AND enddate = 2/2/2011.
SELECT * FROM table1
WHERE '2011-01-01' BETWEEN table1.startdate AND table1.enddate
sostituire la data esplicita sia con now()
o di un parametro o qualsiasi altra cosa.
Se l'enddate è non definito come NOT NULL
si può fare:
SELECT * FROM table1
WHERE '2011-01-01' BETWEEN table1.startdate AND COALESCE(table1.enddate, NOW())
Questo ti aiuta?
select *
from table
where START_DATE < NOW() AND END_DATE > NOW()
A seconda del database, utilizzare CURRENT_TIMESTAMP() o TODAY()
Vuoi dire questo:
select *
from mytable
where start_date >= '01/01/2011'
and end_date <= '02/01/2011'
Fino a fare di più per chiarire la tua domanda, è difficile per noi fornire risposte migliori.
Vuoi dire che hai bisogno di una riga per ciascuna delle singole date tra inizio e fine nel set di risultati? – Yuck
possibile duplicato di [Ottenere un elenco di date tra due date] (http://stackoverflow.com/questions/510012/get-a-list-of-dates-between-two-dates) – Jacob
Se questo è MySQL. Se no, scusa per il rapido dupe vote vote :) – Jacob