EXPERT RESPONSE
This is one of the few times where having separate DATE and TIME columns
would be beneficial.
select columns
from table
where datecol between '2007-07-01' and '2007-07-31'
and (
timecol >= '22:00'
or timecol <= '06:00'
)
With a DATETIME column, however, it's a little trickier.
We need to "extract" the time portion of the DATETIME values.
The query would look something like this:
select columns
from table
where datetimecol >= '2007-07-01'
and datetimecol < '2007-08-01'
and (
extract(hour from datetimecol) >= 22
or extract(hour_minute from datetimecol) <= '06:00'
)
Exact syntax will depend on which database system you're using.
Notice how the range test for the dates uses an open-ended interval.
|