django使用orm方式查詢mogodb的某段時間的值


在使用djgango時,需要在數據表中過濾出在某段時間的內容,網上很多或者說Django的orm是針對mysql,且字段類型是datetime或者其他時間類型,使用__rang這個函數就可以查詢某個時間段的值,

具體可以參考:https://www.cnblogs.com/linjiqin/p/3821914.html

pub_date:是字段,__range:就是使用的API,

 

但是如果你是使用的mogodb,且數據類型是字符串的,如下圖這種字段

存儲的數據格式為:

你使用rang就不行,mogodb就需要這樣操作

需要去掉時分秒,保留日期,轉成日期格式,使用下面的gte和ite的API來進行查詢

具體代碼如下:

 end_date = datetime.datetime.strptime(data_time,'%Y-%m-%d')+datetime.timedelta(days=1)
 start_date = end_date-datetime.timedelta(hours=168)  #24*8=192
 logger.info("查詢起始時間為: %s 結束時間為:%s" % (start_date, end_date))
task_log = TaskLogInfo.objects.filter(task=tasks['id'], start_time__lte=str(end_date)[:10],start_time__gte=str(start_date)[:10])

我查詢的時間是2018-9-6號,查詢7天的數據,因為當天時間需要多加一天,所以查詢日期起:2018-8-31,結束時間為:2018-8-7,這樣就可以查詢出數據是否在某段時間內了 ,且一定是日期不能攜帶時,我猜想可能是把他當作字符串來操作

 

以下博客中有寫到一些過濾條件的API,可參考

https://www.cnblogs.com/yifugui/p/8075306.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM