问题
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
回答1:
Standard Between should work (T-SQL).
SELECT * FROM MyTable WHERE @MYDATE BETWEEN ColumnDateFrom AND ColumnDateFrom
回答2:
if I understand correctly, try this:
SELECT
*
FROM MyTable
WHERE ColumnDateFrom <= '2009-09-25' AND ColumnDateTo >= '2009-09-25'
回答3:
Try this:
SELECT * FROM MyTable WHERE '2009-09-25' BETWEEN ColumnDateFrom AND ColumnDateTo
回答4:
select *
from MyTable
where ColumnDateFrom <= '2009-09-25'
and ColumnDateTo >= '2009-09-25'
回答5:
mysql:
select * from MyTable where '2009-09-25' between ColumnDateFrom and ColumnDateTo
回答6:
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)
回答7:
here example for ms access vba
"[LearningBegin]<= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]>=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin]>= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]<=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] between " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]<=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] between " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]>=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] >= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd] between" & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] <= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd] between" & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#")
来源:https://stackoverflow.com/questions/1479080/select-records-between-two-dates-in-two-columns