ORM
模型Tokens
有个字段是创建时间,如下:
create_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
数据库中截图:
要选择日期等于今天的数据,简单在stackoverflow
上搜了搜,使用了cast
函数,如下:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# 省略部分代码
for t in Tokens.query.filter(Tokens.user_id == user_id).all():
print(t.id, db.cast(t.create_time, db.DATE) == db.cast(current_time. db.Date))
db.cast(t.create_time, db.DATE)
应该是能将时间转换成日期的,但是上述语句print
出来的结果是:
单独print(type(db.cast(t.create_time, db.DATE)))
则结果是<class 'sqlalchemy.sql.elements.Cast'>
,按道理不管db.cast
产生的结果是什么类型,db.cast(t.create_time, db.DATE) == db.cast(current_time. db.Date)
的结果都应该是True or False
吗?
已经解决,就是使用
可以选择日期为今天的数据。
print(db.cast(Tokens.create_time, db.DATE) == db.cast(current_time, db.DATE))
出现不明白的字符,个人猜测是内置的class
修改了__repr__
方法,包括使用print(type(db.cast(t.create_time, db.DATE) == db.cast(current_time, db.Date)))
出来的结果也是<class 'sqlalchemy.sql.elements.BinaryExpression'>
,但可以把它当成普通的布尔值去使用。