views:

359

answers:

6

Hi,

How do I Select records between two dates in two columns?

Select * From MyTable Where 2009-09-25 is between ColumnDateFrom to ColumnDateTo

I have a date (2009-09-25) and I like to select the records that is in the timeframe ColumnDateFrom to ColumnDateTo.

Sample

Record 1 ColumnDateFrom = 2009-08-01 AND ColumnDateTo = 2009-10-01

Record 2 ColumnDateFrom = 2010-08-01 AND ColumnDateTo = 2010-10-01

If my input date is 2009-09-28; then I get record 1

A: 
select * 
from MyTable 
where ColumnDateFrom <= '2009-09-25' 
    and ColumnDateTo >= '2009-09-25'
moose-in-the-jungle
+1  A: 

if I understand correctly, try this:

SELECT
    *
    FROM MyTable 
    WHERE ColumnDateFrom <= '2009-09-25' AND ColumnDateTo >= '2009-09-25'
KM
Nice, but I like better...select * from MyTable where '2009-09-25' between ColumnDateFrom and ColumnDateTo
Rune Brattas
Thank you very much for you quick response...VERY NICE!I am now done and can go home...Wish you all a nice weekend!
Rune Brattas
I never use BETWEEN, I find it easier to read >=, >, <=, and/or < because you know if the end points are included, with BETWEEN you have to remember if the end points are included or not.
KM
+2  A: 

Try this:

SELECT * FROM MyTable WHERE '2009-09-25' BETWEEN ColumnDateFrom AND ColumnDateTo
Yannick M.
Thank you,Works fine...
Rune Brattas
A: 

mysql:

select * from MyTable where '2009-09-25' between ColumnDateFrom and ColumnDateTo
Anatoliy
Thank youThis is the solution
Rune Brattas
+2  A: 

Standard Between should work (T-SQL).

SELECT * FROM MyTable WHERE @MYDATE BETWEEN ColumnDateFrom AND ColumnDateFrom
Quintin Robinson
A: 

Just remove the "Is"

Select * From MyTable 
Where '2009-09-25' Between ColumnDateFrom to ColumnDateTo

remember to consider the time portiomn if the column values have date and time in them... (assuming DateOnly() is some function that strips the time from a datetime column)

Select * From MyTable 
Where '2009-09-25' Between DateOnly(ColumnDateFrom) 
                        To DateOnly(ColumnDateTo)
Charles Bretana
Thank you,It works fine with and without the time portium
Rune Brattas
This function call on the date column is going to prevent any index use is it not?
Nathan Feger