String sql="select * from Order where SDate>='2013-07-07' and ShippingDate<='2013-07-07'";请问这是何意?为何又是大于,又是小于的,不前后矛盾吗?

解决方案 »

  1.   

    这样用应该没什么大问题吧?
    难到用between?
      

  2.   

    SDate>='2013-07-07' and ShippingDate<='2013-07-07'
    两个字段都不同,一个是SDate,一个是ShippingDate
      

  3.   


    对不起,我写错了,是笔误,二者都是SDate
      

  4.   


    对不起,我写错了,是笔误,二者都是SDate
    哪个写的  没什么意思 吗
    求集合的话, 直接等于 就好啦
      

  5.   

    如果是同一个字段,既大于等于 and 小于等于 应该是个时间段呀?
    如果是同一个时间,直接写等于就行了.>=7 and <=7 只有7才成立呀?
      

  6.   

    SDate>='2013-07-07' and SDate<='2013-07-07' 逻辑上等同 SDate='2013-07-07'估计应该是SDate>='2013-07-07' and SDate<'2013-07-08',查询2013-07-07全天的数据,包括分秒
      

  7.   

    应该是时间类型不对,感觉应该是 SDate>='2013-07-07 00:00' and SDate<'2013-07-08 23:59 '
      

  8.   

    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毫秒大的,前后就差了一天了。
      

  9.   

    1. 这应该是一个动态组合的SQL, 日期应该是可变的, 你捕捉的是两个日期刚好一样.
    2. 这段代是复制过来改的
      

  10.   

    人家是and 不是or好吧。
    楼主应该把整个题目说明完整,如果sdate是datetime类型,则字符串'2013-07-07'会自动加上0点的时间,变为
    '2013-07-07 00:00:00.000'
      

  11.   

    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'";
      

  12.   


    那这么这么写的了....
    SDate='2013-07-07'
      

  13.   

    是  SDate='2013-07-07 00:00:00.000'
    就是完全整点的意思吧