First off, what’s the result you’re trying to achieve? One value per hour?
The tag history system works quite a bit differently than what it sounds like you have in mind. First off, on the storage: the tags are checked at the scan class rate, but will only store values when the value actually changes (and what constitutes a change depends on deadband and analog vs. discrete mode). As gbuehler mentioned, you can play with the “max time” setting in order to force storage, but I’m not sure that is really necessary here.
On the query side, the tag history system provides various options. The easy chart asks for a fixed number of results over a range of time. When you use the csv export from the chart, you’re writing out the data from the underlying query, so you’ll end up with evenly spaced values.
If you want something different, you’ll likely have to use scripting to query the tag history as you want it, and write it to CSV.