我有兩個查詢使用between子句產生日期範圍,其中日期通過VB.net程序傳入:日期之間的查詢只返回結果如果選定日期等於或大於數據中的日期
select
w.plate,
Description,
Date_in,
time_in,
Date_out,
Time_out,
Date_out-Date_in as "Days on Site",
Time_out-Time_in as "Duration on Site (Hrs)"
from tbl_stay S
inner join tblwhitelist W
on S.plate=W.plate
where Date_in between "1/06/2013" and "25/09/2013"
和
select
Plate,
Date_in,
Time_in,
Date_out,
Time_out,
Date_out-Date_in as "Days on site",
Time_out-Time_in as "Duration on site (Hrs)"
from tbl_stay
where plate not in (Select plate from tblwhitelist)
and date_in between "1/07/2013" and "1/08/2013"
爲了測試,我有具有日期「25/07/2013」兩者進出數據塊。這些查詢只好像產生的結果,如果一個月的天比數據(25)
例如提到的天更高:在查詢上述日期:
Date_in between "1/06/2013" and "25/09/2013"
會產生結果,但是
date_in between "1/07/2013" and "1/08/2013"
不會。即使包含在測試數據(25/07/2013)中的日期在這兩個範圍內。
我完全難住了。這裏可能會發生什麼?任何援助將不勝感激
字段「date_in」的數據tyoe是什麼?你描述的行爲看起來好像它的比較字符串 –
「25/06/2013」和「25/08/2013」之間的'返回結果嗎? –
您使用的格式取決於MySQL設置。嘗試使用不依賴於設置的格式之一,例如DATE'2013-01-07'和DATE'2013-01-08''之間的'...和date_in。關於日期格式的更多信息是[here](http://dev.mysql.com/doc/refman/5.0/en/date-and-time-literals.html) –