Skip to content
Advertisement

How to get month and year from Date field in sqlalchemy?

The result should be Date object

Since the day cannot be ‘removed’, set it to say, 1st day of the month.

Leaving only Month, Year

Advertisement

Answer

You can use following constructs to filter the Date column using either year or month:

.filter(extract('year', Foo.Date) == 2012)
.filter(extract('month', Foo.Date) == 12)

And group_by is also possible:

.group_by(sqlalchemy.func.year(Foo.Date), sqlalchemy.func.month(Foo.Date))

Now I haven’t tested it, but I assume that this might be slow because these queries result in full table scans, therefore I suggest you invest some time and learn how to use composite columns.

Note: extract() is imported from sqlalchemy.sql

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement