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