2011-11-16 52 views
0

我有一個名爲payment的mysql表,其中有一個名爲next_due_date的字段,它包含從用戶手動輸入的日期值格式爲yyyy-mm-dd,類型爲VARCHAR。我試圖如何在mysql中存儲爲varchar的字段獲取date和date之間的日期

select * from payment where next_due_date >= '$strtdate' AND next_due_date <= '$endDate'; 

$strtdate保持當前的日期和$endDate持有之前從當前日期30天的日期值。

回答

1

邏輯問題 - 您要求記錄next_due_date在今天之後,以及next_due_date在30天之前的位置。想想這一點,你就會明白爲什麼你沒有記錄:)

你可能想要更多的東西一樣:

select * from payment where next_due_date <= '$strtdate' AND next_due_date >= '$endDate'; 

雖然這看起來還是「怪異」 - 可能是因爲來代替:
「$ strtdate持有目前的日期,$ endDate持有日期值之前30天之前。「

也許你想:
$ strtdate持有30天之前現在和$結束日期持有當前日期。

那麼你可以有:

從支付其中next_due_date> = '$ strtdate' AND next_due_date < = '$結束日期';

0

如果您確保strtdate和結束日期是在YYYY-MM-DD格式,那麼下面應該工作:

select * from payment where next_due_date <= '$strtdate' AND next_due_date <= '$endDate'; 

我假設你要選擇記錄中,其中到期日是開始和結束中日期範圍?

相關問題