iT邦幫忙

0

[已完成]python 資料庫資料時間比較問題

  • 分享至 

  • xImage

新手請教

目前使用版本為python3,已在資料庫裡面建立了兩個時間欄位如下

first = models.DateField( verbose_name='開始時間')
last = models.DateField( verbose_name='結束時間')

想要在view裡面抓資料時判斷好,目前時間大於開始時間且目前時間小於結束時間才拋到前端做顯示

但發現抓資料時只能使用“=”做判斷,想請教是否有建議的做法可滿足需求呢?

tt = test.objects.filter(first = datetime.date.today())

wayne5231 iT邦新手 5 級 ‧ 2022-08-15 14:16:30 檢舉
再請教一下

date = datetime.date.today()
tt = test.objects.filter(date__range=[test.first, test.last])
這是我目前的寫法

但會出現錯誤
Cannot resolve keyword 'date' into field. Choices are: array, expl, first, id, last, ps

PS:Choices are: array, expl, first, id, last, ps,裡面的是我資料表欄位

請問我應該如何修改呢?謝謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-08-12 17:52:14

試試看

tt = test.objects.filter(date__range=["2021-01-01", "2021-01-31"])

資料來源

看更多先前的回應...收起先前的回應...
wayne5231 iT邦新手 5 級 ‧ 2022-08-12 23:39:29 檢舉

想請問,date_range裡面的日期可以換成資料表裏面的”first””last”嗎?主要是想要每一行資料都能依造自己的時間被判斷。
引用方式目前是用”first””last”,是否有用錯呢?
謝謝您

wayne5231 iT邦新手 5 級 ‧ 2022-08-15 14:16:39 檢舉

再請教一下

date = datetime.date.today()
tt = test.objects.filter(date__range=[test.first, test.last])
這是我目前的寫法

但會出現錯誤
Cannot resolve keyword 'date' into field. Choices are: array, expl, first, id, last, ps

PS:Choices are: array, expl, first, id, last, ps,裡面的是我資料表欄位

請問我應該如何修改呢?謝謝

試試這一篇看看

tt = test.objects.filter(date__range=(first, last))
或
from_date = datetime.datetime.combine(first, datetime.time.min)
to_date = datetime.datetime.combine(last, datetime.time.max)
tt = test.objects.filter(date__range=(from_date, to_date))

再不行我就不會了, 幫不上忙

wayne5231 iT邦新手 5 級 ‧ 2022-08-17 08:25:32 檢舉

感謝回覆
目前看來還是不行,我的
first = models.DateField( verbose_name='開始時間')
last = models.DateField( verbose_name='結束時間')
是資料庫欄位,寫在model.py裡面

date__range比對時一直出現字串錯誤,我想應該會先從這邊下手試試看

主要是要實現貼文的自動上下架問題,謝謝

wayne5231 iT邦新手 5 級 ‧ 2022-08-17 13:49:01 檢舉

問題已解決,分享一下找到的方式

tt = test.objects.filter(first__lte=datetime.now(),last__gte=datetime.now())

可能是我沒將環境說明清楚,我的環境為 django+pyhton3+sqllite3
主要是__lte、__gte即可做判斷,謝謝

我要發表回答

立即登入回答