django created_atから年、月、日を抽出するという簡単な質問
Copilotの回答:
- Django ORMの annotate を使う
Djangoの annotate を使えば、クエリ内で直接日付情報を抽出できます。
python
from django.db.models.functions import ExtractYear, ExtractMonth, ExtractDay
queryset = YourModel.objects.annotate(
year=ExtractYear(‘created_at’),
month=ExtractMonth(‘created_at’),
day=ExtractDay(‘created_at’)
)
for obj in queryset:
print(obj.year, obj.month, obj.day)
📌 ポイント
ExtractYear, ExtractMonth, ExtractDay を使うと、DBから直接値を取得できる。
DBの負荷を減らし、効率よくデータを取得できる。
- Pythonの datetime モジュールを使う
Django ORMで取得後に datetime モジュールを使って処理する方法もあります。
python
from datetime import datetime
obj = YourModel.objects.first() # 最初のレコードを取得
created_at = obj.created_at
year = created_at.year
month = created_at.month
day = created_at.day
print(year, month, day)
📌 ポイント
created_at.year, created_at.month, created_at.day で簡単に取得可能。
ORMでフィルタ後に処理する場合に便利。
忘れがちな文法は、Copilotに気軽に聞いたほうが検索エンジンより効率がよさそう!!
いまココぼっちというマッチングアプリを2025年5月にリリースします!
コメントを残す