Я провел два запроса через некоторые из моих таблиц дат в моей базе данных и, используя EXPLAIN ANALYZE, нашел следующие результаты:
explain analyze
select * from capone.dim_date where date between '01/18/2012' and '02/17/2012'
Общее время работы: 22,716 мс
explain analyze
select * from capone.dim_date where date > current_date - 30
Общее время выполнения: 65,044 мс
Так что, похоже, 1-й вариант более оптимальный. Конечно, это смещено в сторону моей СУБД, но это все еще результаты, которые я получил.
Таблица имеет даты в диапазоне от 1900 до 2099 года, поэтому она довольно большая, а не просто какой-то изворотливый столик.