I have a field in my table which stores dates and times in datetime
format. I want to get the data from 10 p.m. to 6 a.m. between 1st July and 31st July.
What's the best way to get this data?
To continue reading for free, register below or login
Requires Membership to View
To read more you must become a member of SearchOracle.com
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.
Search and Browse the Expert Answer Center Search and browse more than 25,000 question and
answer pairs from more than 250 TechTarget industry experts.
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.