Query result in a daily date from a date range selection Postgres 9.3
All that you have to add is the day (be it the start or the end date).  This can be obtained using a cast to date, for example.  When you add it to the query, you'll need a GROUP BY clause, too, on this expression - that will produce you the daily aggregates.
The whole query will look like
SELECT created_at::date AS start_date,
       created_at::date + 1 AS end_date,
       COUNT(case when type = 'Completed Sale' then id end) AS complete, 
       COUNT(case when disposition = 'Partial Sale' then id end) AS partial, 
       SUM(gross) AS revenue 
FROM sales 
WHERE created_at &gt;= '2015-09-20 00:43:32' AND created_at &lt;= '2015-09-24 18:43:32'
GROUP BY created_at::date;

Notes:

using start_date and end_date like this can be slightly confusing - in normal life one expects the end date to be inclusive.  With the way you use it might not be clear which data belong to which day - I would simply omit the end date.
in the GROUP BY clause it's enough to mention the cast expression only once - adding one day in another columns does not result in a different grouping.