Mysql 日期之间的查询仅在选定日期等于或大于数据中的日期时返回结果

Mysql 日期之间的查询仅在选定日期等于或大于数据中的日期时返回结果,mysql,sql,vb.net,Mysql,Sql,Vb.net,我有两个查询正在使用BEVERY子句生成日期范围,其中日期通过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.plat

我有两个查询正在使用BEVERY子句生成日期范围,其中日期通过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"

对于测试,我有一个数据块,其输入和输出日期均为“25/07/2013”。只有当当月的大于数据中提到的日期时,这些查询才会产生结果(25)

例如:上述查询中提到的日期:

Date_in between "1/06/2013" and "25/09/2013"
然而,这将产生一个结果

date_in between "1/07/2013" and "1/08/2013"
不会。即使试验数据中包含的日期(2013年7月25日)在这两个范围内


我完全被难住了。这里可能发生了什么?任何帮助都将不胜感激

答案是不要在两者之间使用

WHERE
子句中的该行一分为二,并使用
=
或仅使用
明确指定是否包含该日期

“2013年7月1日”或“2013年7月1日”中的日期


和日期在<“1/08/2013”中
或中的
日期当您使用双引号时,您是在比较
文本字符串
,而不是
日期
01/07/2013
的字面意思小于
25/01/2013
,基本上这些字符串是逐字符比较的。如果查看两个字符串中的第一个字符,则
0
小于
2

“日期”字段的数据类型是什么?u描述的行为似乎是将stringsDoes
与“25/06/2013”和“25/08/2013”进行比较,返回结果?您使用的格式取决于MySQL设置。尝试使用不依赖于设置的格式之一,例如
。。。日期_介于日期“2013-01-07”和日期“2013-01-08”之间
。关于日期格式的更多信息是,为什么不使用公认的日期数据类型来存储日期?
date_in between "1/07/2013" and "1/08/2013"