Getting the zero values along with the original queries

Hello, I have a database table that contains information about the timestamp and location(latitude and longtitude) of the requests made by users. The column structure is as following:

Code:

requesttime(which is a timestamp without time zone type) | latitude | longtitude

I have written the following code in order to retrieve the total requests made day by day and hour interval by hour interval starting from a given datetime to another given datetime:

Code:

SELECT date_trunc('hour', requesttime), COUNT(requesttime)
FROM mytable
WHERE requesttime between '2001-04-02 03:12:45' and '2006-02-05 23:14:00'
GROUP BY date_trunc('hour', requesttime)
ORDER BY date_trunc('hour', requesttime);

(a sample result from this query is 2003-07-11 21:00:00 | 121, meaning that 121 requests were made during the 21:00 - 22:00 hourly interval on july 11 2003)

however, I realized that this query skips printing out the time intervals that have 0 requests -as an example let's say that 2002-03-12 03:00:00 (the 03:00 - 04:00 am interval) has 0 counts of requests but it directly skips printing that and prints the 04:00-05:00 interval instead-

How can I make this query to also print out all the rows in my table with 0 counts in addition to all the original results I have printed? Thanks in advance.

Thanks a lot, that did the trick. I have two more issues that I would like to clarify:

Is there a way to make this joining process run once and be done with it -applying it to the database permanently, or maybe the problem is with the structure my original query choice since it still seems to ignore the rows with 0 count-? Because depending on date-time inputs from the Qt gui end, the two timestamp intervals will be varying -such as the 1 year interval in my example- and only a single day of 24 hour data execution took 14 seconds when my old query -the one in my first post, showing all hourly interval counts from February 2 2011 to April 1 2012- executed in 5 seconds.

Secondly, executing this only returns the 24 hours of data of the first

Code:

select timestamp without time zone '2011-04-05 00:00:00'

element. How can I make this return all the data within the given two timestamp parameters?