如何从sqlalchemy的Date字段获取月份和年份?

时间:2012-08-18 15:25:21

标签: python sql sqlalchemy

结果应为Date对象

由于当天不能“删除”,因此请将其设置为月份的第1天。

仅离开月份,年份

2 个答案:

答案 0 :(得分:30)

您可以使用以下构造来使用Dateyear过滤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))

现在我还没有对它进行过测试,但我认为这可能会很慢,因为这些查询会导致全表扫描,因此我建议您投入一些时间并学习如何使用composite columns

答案 1 :(得分:0)

如果您声明这样的架构,

schema.Column('created', types.TIMESTAMP(), default=now()),

函数now()在同一模块中定义 这可能是这样的

def now():
    now_date = datetime.datetime.now()
    return now_date.replace(day=1)

根据group_by要求,here是提到的方法。

您可以同样修改小时和其他字段。