Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Turambar
Feb 20, 2001

A Túrin Turambar turun ambartanen
Grimey Drawer
You could also fill a table with the hour and minute intervals and do a simple join.


code:
Create table dbo.ReportTimeInterval
(
HourStart int not null,
MinuteStart int not null,
HourEnd int not null,
MinuteEnd int not null
)
GO
insert into dbo.ReportTimeInterval
(
select
0,0,0,9 union all select
0,10,0,19 union all select
...
23,50,23,59
)
GO
SELECT
dbo.ReportTimeInterval.HourStart,
dbo.ReportTimeInterval.MinuteStart,
dbo.ReportTimeInterval.HourEnd,
dbo.ReportTimeInterval.MinuteEnd,
COUNT(content_id) AS count
FROM
`views`
inner join dbo.ReportTimeInterval
on dbo.ReportTimeInterval.HourStart <= datepart(hour,added)
and dbo.ReportTimeInterval.MinuteStart <= datepart(minute,added)
and dbo.ReportTimeInterval.HourEnd >= datepart(hour,added)
and dbo.ReportTimeInterval.MinuteEnd >= datepart(minute,added)
GROUP BY
dbo.ReportTimeInterval.HourStart,
dbo.ReportTimeInterval.MinuteStart,
dbo.ReportTimeInterval.HourEnd,
dbo.ReportTimeInterval.MinuteEnd
This is untested code, BTW. But it should give you the general idea.

Adbot
ADBOT LOVES YOU

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply