结果应该是日期对象
既然日期不能“删除”,那么将其设置为月份的第一天。
只保留月份和年份。
结果应该是日期对象
既然日期不能“删除”,那么将其设置为月份的第一天。
只保留月份和年份。
您可以使用以下结构来筛选 Date
列,使用 year
或 month
:
.filter(extract('year', Foo.Date) == 2012)
.filter(extract('month', Foo.Date) == 12)
而且group_by
也是可行的:
.group_by(sqlalchemy.func.year(Foo.Date), sqlalchemy.func.month(Foo.Date))
现在我没有测试过,但是我认为这可能会很慢,因为这些查询结果需要对整个表进行扫描,因此我建议您投入一些时间学习如何使用复合列。
注意:extract()
是从sqlalchemy.sql
导入的。
func.year
是特定于MySQL的 :S - plaes.group_by(
sqlalchemy.func.extract('year', Foo.Date),
sqlalchemy.func.extract('month', Foo.Date),
)
schema.Column('created', types.TIMESTAMP(), default=now()),
函数 now() 定义在同一模块中,可能像这样
def now():
now_date = datetime.datetime.now()
return now_date.replace(day=1)