djangoで24時間前以降のデータを取ってきたい
417
Djangoで24時間前以降のデータを取得するには、以下のようにクエリを実行します。
方法
datetimeモジュールをインポートして、現在時刻から24時間前の日時を計算します。
DjangoのORMでフィルタリングします。
以下の例は、モデル名が MyModel、日時フィールドが created_at という場合のサンプルコードです。
from datetime import datetime, timedelta
from django.utils.timezone import now # タイムゾーン対応
# 現在時刻から24時間前を計算
time_threshold = now() - timedelta(hours=24)
# フィルタリングしてデータを取得
recent_data = MyModel.objects.filter(created_at__gte=time_threshold)
解説
created_at__gte は「指定した日時以上」を意味します。
now() を使用すると、Djangoのタイムゾーン設定を考慮した現在時刻を取得できます。
timedelta で24時間分の時間を引いて計算します。
注意
created_at フィールドは、通常 DateTimeField である必要があります。
タイムゾーンが正しく設定されていることを確認してください。タイムゾーンが適切でない場合、USE_TZ = True とし、TIME_ZONE を正しく設定してください。