2014-09-11 149 views
-1

如何根據以下查詢得到結果。根據日期(月份和年份)篩選結果

這是我model.py

class Revenue_Report(models.Model): 
    value = models.CharField(max_length = 100) 
    value_name = models.CharField(max_length = 225) 
    tracks_id = models.ForeignKey(Tracks) 
    posted_date = models.DateTimeField(auto_now_add=True) 

我需要得到的結果月份和年份明智

monthPillDetails=Revenue_Report.objects.values('value').filter(posted_date__year='2014',posted_date__month='09') 

當我運行查詢,我得到空的結果,但我在我的表有數據。

更新時間:

當我給這樣的

monthPillDetails=Revenue_Report.objects.filter(posted_date__year='2014').values('value')  

控制檯輸出爲[{'value': u'12345'}, {'value': u'12345'}, {'value': u'12345'}, {'value': u'123456'}, {'value': u'12345'}]

但嘗試一個月,當它返回無[]

monthPillDetails=Revenue_Report.objects.filter(posted_date__month='09').values('value') 
+0

查詢是否在沒有值語句的情況下工作?如果交換數值和過濾器會怎樣? – power 2014-09-11 11:56:48

+0

monthPillDetails = Revenue_Report.objects.filter(posted_date__year ='2014')。values('value') – 2014-09-11 12:02:04

+0

看到我更新的查詢 – 2014-09-11 12:08:55

回答

0

使用,你想看看

where = "Month(posted_date)='09'" 
monthPillDetails=Revenue_Report.objects.extra(where=[where]) 

當您打印monthPillDetails你會得到的結果嘗試。,

1

用途:

monthPillDetails=Revenue_Report.objects.values_list('value').filter(posted_date__year='2014') 
+0

即將到來的年份'見我的編輯',但我需要打印明智的月份。 – 2014-09-11 12:07:56

+0

嘗試它Django殼。任何錯誤?可能是你的時區配置不正確settings.py – 2014-09-11 12:15:27

+0

我在django shell中檢查沒有錯誤結果是[] – 2014-09-11 12:17:21

0

嘗試通過整一個月來過濾,不串:

filter(posted_date__month=9) 
+0

>>> monthPillDetails = Revenue_Report.objects.filter(posted_date__month = 9).values_list( '值') >>> monthPillDetails [] – 2014-09-11 12:33:44

+0

SELECT * FROM revenue_report WHERE MONTH(posted_date)='09';當我在MySQL工作臺中運行這個查詢時,我會得到結果,但我需要在Django過濾器中查詢 – 2014-09-11 12:34:24

+0

Check Revenue_Report.objects.filter(posted_date__month = 9).query – power 2014-09-11 13:12:21