If you're talking about Postgres most people would likely implement this using date/time-based partitioning which provides a more seamless solution to this problem.
Not just Postgres folks - SQL Server and Oracle also :-)
Hehe. Advanced SQL is unfortunately not my thing. I only dabble in it; and the solution seemed easy enough given my ... limited knowledge of views and UNION