人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

google app engineでdatetime = db.DateTimeProperty(auto_now_add=True)と定義してあるプロパティがあります。データストアから今日POSTされたデータだけfilterしたいのですがうまく行きません。Dateを使ってDateTimeをQueryでフィルタするにはどうしたらいいのでしょうか?

●質問者: double_o_groove
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DB Google App Engine データ フィルタ プロパティ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ●
●100ポイント

datetime.datetime型ではマイクロ秒まで保持されるので、比較するには今日の00:00以上、明日の00:00未満とすれば良いと思います。

filterでやるのであれば、こんな感じだと思います。

queryは事前に設定している想定です。

時差は考慮していないので、UTCです。

import datetime

today_start = datetime.datetime.today().replace(hour=0,minute=0,second=0,microsecond=0)
tomorrow_start = today_start + datetime.timedelta(days=1)

query.filter('date >=', today_start).filter('date <', tomorrow_start)

同じことをGqlQueryを使ってSQLのように書いても良いと思います。

◎質問者からの返答

あ?、そっか?。いけそうな感じがしますね。ありがとうございます。

ちなみに最後の行のdateはdatetimeですよね?宣言がdatetime = db.DateTimeProperty(auto_now_add=True)なので。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ