Python 查询与返回空列表之间的关系

Python 查询与返回空列表之间的关系,python,flask,sqlalchemy,Python,Flask,Sqlalchemy,我刚开始使用Flask SQLAlchemy,我看了看这里,想知道我应该如何在这两者之间进行查询,所以我发现 但我遇到的问题是,当按如下方式执行时,它返回以下内容: SELECT records.id AS records_id, records.created_at AS records_created_at, records.file_type AS records_file_type, records.path_filename AS records_path_filename FROM

我刚开始使用Flask SQLAlchemy,我看了看这里,想知道我应该如何在这两者之间进行查询,所以我发现

但我遇到的问题是,当按如下方式执行时,它返回以下内容:

SELECT records.id AS records_id, records.created_at AS records_created_at, records.file_type AS records_file_type, records.path_filename AS records_path_filename 
FROM records 
WHERE records.created_at BETWEEN ? AND ?
代码:

当我在最后30天表达式的末尾添加
.all()
时,它返回一个空列表

我还想提到的是,当我使用相同的表达式来查询week时,today\u date会得到所有结果

这是表格的外观:

class Records(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    created_at = (db.Column(db.String(20), nullable=False))
    file_type = (db.Column(db.String(100), nullable=False))
    path_filename = db.Column(db.String(120), unique=True, nullable=False)

谁能给我解释一下发生了什么事?谢谢

您的示例没有使用SQLAlchemy附带的
Date
DateTime
列数据类型。您依赖于字符串的字典排序,但要实现这一点,日期/时间戳需要按照ISO 8601的要求进行存储,例如
YYYY-MM-DD


请更改正在使用的字符串格式,或者选择适当的列类型,而不仅仅是
string

您的示例不使用SQLAlchemy附带的
Date
DateTime
列数据类型。您依赖于字符串的字典排序,但要实现这一点,日期/时间戳需要按照ISO 8601的要求进行存储,例如
YYYY-MM-DD


更改正在使用的字符串格式,或者选择适当的列类型,而不仅仅是
string

,因为您正在进行字符串比较,而不是日期时间比较。如果希望字符串上的比较有意义,则需要ISO格式的时间。例如,“YYYY-MM-DD”将允许进行字符串比较。还要注意,SQLABE中有一种
DateTime
Date
格式,因为您正在进行字符串比较,而不是DateTime比较。如果希望字符串上的比较有意义,则需要ISO格式的时间。例如,“YYYY-MM-DD”将允许进行字符串比较。还请注意,SQLAAll right中有一个
DateTime
Date
格式,因此我将格式更改为ISO 8601,现在当我进行同样的查询时,db仍然给我错误的输出,有什么线索吗?您是如何迁移数据库中现有数据的格式的?为了测试,我创建了一个只有4条记录的新数据库。日期如下2019-10-15、2019-10-16、2019-09-15、2019-09-20,最后30天的查询结果是[记录('1','2019-10-15','picture','dasdas')、记录('2','2019-10-16','picture','dasdasgas')。好的,今天是10月21日,那么结果有什么问题吗?。9月份的数值都不在过去30天内……哦,我知道这听起来很傻,但我现在是20。没关系,谢谢你的战利品伙计!好的,我将格式更改为ISO 8601,现在当我查询相同的数据时,db仍然给我错误的输出,有什么线索吗?您是如何迁移db中现有数据的格式的?我创建了一个新的数据库,其中只有4条记录用于测试目的。日期如下2019-10-15、2019-10-16、2019-09-15、2019-09-20,最后30天的查询结果是[记录('1','2019-10-15','picture','dasdas')、记录('2','2019-10-16','picture','dasdasgas')。好的,今天是10月21日,那么结果有什么问题吗?。9月份的数值都不在过去30天内……哦,我知道这听起来很傻,但我现在是20。没关系,谢谢你的战利品伙计!
class Records(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    created_at = (db.Column(db.String(20), nullable=False))
    file_type = (db.Column(db.String(100), nullable=False))
    path_filename = db.Column(db.String(120), unique=True, nullable=False)