2

ドキュメントによると、検索クエリは次のようになります。

GET /api/person?q={"filters":[{"name":"age","op":"ge","val":10}]}

日付を比較するにはどうすればよいですか? 私は試した:

GET /api/person?q={"filters":[{"name":"date","op":"<=","val":"1/20/2015"}]}

2015 年 1 月 20 日より前の日付を持つものもありますが、結果は得られません。私は試した:

GET /api/person?q={"filters":[{"name":"date","op":">=","val":"1/20/2015"}]}

これにより、2015 年 1 月 20 日より前のものも含め、すべての結果が返されます。

これはユーザーモデルです:

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime)
    type =db.Column(db.String(255))
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active= db.Column(db.Boolean())
    activated_at = db.Column(db.DateTime())
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

日付を照会する正しい方法は何ですか?

4

1 に答える 1

3

ダビディズムは完全に正しいです。JSON の日時を言うべきではありませんでした。JSON 自体には、日付/日時の形式を表す方法がありません。通信の送信側/受信側で「ねえ、私は期待しています。ここに日付、これは日付のように見えます。

一般に、ほとんどの人は ISO 8601 を JSON の日時表現として使用します ( 2014-10-23T18:25:43.511Z)。Flask-Restless は、受信した値を解析して日時フィールドに戻すために使用dateutil.parseているようですが、奇妙なことに、GET ではありません。

したがって、datetime 値を表す文字列は、データベースが期待するものと一致する必要があるように見えます。これは、平均して ISO 8601 形式になります。

于 2015-01-10T15:53:23.723 に答える