String sql="select * from Order where SDate>='2013-07-07' and ShippingDate<='2013-07-07'";
请问这是何意?为何又是大于,又是小于的,不前后矛盾吗?
分享到:
------解决方案-------------------- 如果是同一个字段,既大于等于 and 小于等于 应该是个时间段呀?
如果是同一个时间,直接写等于就行了.
>=7 and <=7 只有7才成立呀? ------解决方案-------------------- 应该是时间类型不对,感觉应该是 SDate>='2013-07-07 00:00' and SDate<'2013-07-08 23:59 ' ------解决方案-------------------- MSSQL里,datetime通常应该是像“2013-07-07 16:00:00.000”这样的格式。你提供的代码里,SDate>='2013-07-07'就表示只考虑年月日,不考虑时分秒,那么只要是比2013年7月6日23时59分59秒59毫秒大的,都满足条件;如果你不用>=,只用>,那么就是比2013年7月7日23时59分59秒59毫秒大的,前后就差了一天了。 ------解决方案--------------------
人家是and 不是or好吧。
楼主应该把整个题目说明完整,如果sdate是datetime类型,则字符串'2013-07-07'会自动加上0点的时间,变为
'2013-07-07 00:00:00.000' ------解决方案-------------------- String sql="select * from Order where SDate>='2013-07-07' and SDate<='2013-07-07'";
即为2013-07-07这天的数据,建议用下面的:
String sql="select * from Order where convert(varchar(10),SDate,120)='2013-07-07'"; ------解决方案--------------------