Here are some utility functions to make what I posted above easier to use:
def byYear(column, year):
return AND(column >= datetime.datetime(1, 1, year),
column < datetime.datetime(1, 1, year + 1))
def byYearAndMonth(column, year, month):
return AND(column >= datetime.datetime(month, 1, year),
column < datetime.datetime(month % 13 + 1, 1,
year + (month + 1) / 13))
Use like so:
Table.select(byYearAndMonth(Table.q.date, 2005, 12))

