解决方案 »

  1.   


    SELECT CONVERT(CHAR(10),CK_AllocIn.CK_AllocInDate,23) as CK_AllocInDate FROM dbo.CK_AllocIn 
    WHERE CK_AllocInDate > '2014-04-01' and CK_AllocInDate < '2014-04-30'  把后面的时间去掉,另外统一成yyyy-MM-dd格式再去比较。between应该也是可以的第二个问题,这是aspx代码吗?弄个table布局一下,加一行就加一行呗
      

  2.   

    SQL语句里没有双引号,统一改成单引号
      

  3.   

    strWhere = "CK_AllocOutDate between" + frtime + "and" + totime + "and" + tobranch;在这里需要对日期加单引号
      

  4.   

    SELECT * FROM dbo.CK_AllocIn 
    WHERE CK_AllocIn.CK_AllocInDate BETWEEN "2014-4-1" AND "2014-4-30"这里的错误是双引号,你应该使用单引号,应该改成:SELECT * FROM dbo.CK_AllocIn 
    WHERE CK_AllocIn.CK_AllocInDate BETWEEN '2014-4-1' AND '2014-4-30'后面的错误是缺少单引号,应该改成
    strWhere = " CK_AllocOutDate between '" + frtime + "' and '" + totime + "' and " + tobranch;
    在修改中发现,and等前后你都没有加空格,这方面注意要加好。还有string tobranch = ddlBranch.SelectedValue;,这个看上去好像是某个下拉框的值,但下拉的值你已经设定为能作为SQL WHERE里的段了吗?这方面也关注一下另外教你一个方法,断点的使用,断点在SQL形成的代码行,即可获得完整的SQL,这样你就可以把它拿 出来放进SQL SERVER里测试SQL语句的正确性,而不用这样问。
      

  5.   

    问题不难.首先你数据库是datetime格式的 
    但是你的SQL是BETWEEN "2014-4-1" AND "2014-4-30"
    当然查询不到了 应该是BETWEEN '2014-04-01' AND '2014-04-30'当然 可能还是查询不到.因为你没有当前区间的数据 具体格式我忘记了.但是这个地方 你要添加
    BETWEEN '2014-04-01 00:00:00 000' AND '2014-04-30 59:59:59 999'
    前提是你的UI的格式也是YYYY-MM-DD才可以..所以你这个DatePicker 我不知道是什么 肯定有属性是yyyy-MM-dd所以 你后台只需要
    string where="xxxtime between '"+xxx1.text+" 00:00:00 000' and '"+xxx2.text+" 59:59:59 999'";
    即可..测试下吧