我使用date函数查询数据库,想返回当天的日期的数据,但是得到的结果是
三天内的数据库,从我程序运行起的三天内数据,包括今天的数据!为什么?
请各大虾帮忙!!!!

解决方案 »

  1.   

    --MS SQL
    Select * From 表 Where DateDiff(dd, 時間字段, GetDate()) = 0
      

  2.   

    Select * From 表 Where DateDiff(dd, 時間字段, GetDate()) = 0
    这句话不懂?我的查询语句只这样的
    dt = date
     ts = "07:45"
        sql = "select*from space where dates='" & dt & "' and  times='" & ts & "'"
      

  3.   

    什麼數據庫?另外,dates的類型是什麼?如果是字符型的話,格式是怎樣的?
      

  4.   

    SQL数据库,dates类型是字符,格式是yyyy-mm-dd
      

  5.   


    --去掉dt, 可以直接用GetDate()
     ts = "07:45"
    sql = "select * from [space] where DateDiff(dd, dates, GetDate()) = 0 and  times='" & ts & "'"
      

  6.   

    如果想用dtdt = date
     ts = "07:45"
       sql = "select * from [space] where DateDiff(dd, dates, '" & dt & "') = 0 and  times='" & ts & "'"
      

  7.   

    DateDiff(dd, dates, '" & dt & "') = 0 
    这句话不明白,也没有见过请paoluo大哥告诉我,谢谢!
      

  8.   

    參考下MS SQL聯機幫助上DateDiff的用法。
      

  9.   

    不好意思,我忘记了,dates在SQL数据库是数据类型是datetime你的意思我明白是今天的日期减数据库纪录日期得到的是0 才符合条件我还想请问下为什么直接用date不行,可以告诉我吗? 谢谢!
      

  10.   

    shuijinyue() ( ) 信誉:100  2007-07-27 13:05:08  得分: 0  
     
     
       不好意思,我忘记了,dates在SQL数据库是数据类型是datetime你的意思我明白是今天的日期减数据库纪录日期得到的是0 才符合条件我还想请问下为什么直接用date不行,可以告诉我吗? 谢谢!
      
     
    ---------------------
    我忘记了,dates在SQL数据库是数据类型是datetime
    datetime類型也是一樣可以用
    不過,你那個為什麼不行,我也不清楚。你可以單步調試,在那個地方設置斷點,將要執行的SQL去出來看看,執行的是怎樣的語句。這樣能更容易清楚錯誤原因。
      

  11.   

    sql = "select * from space where dates='" & format(dt,"yyyy-mm-dd") & "' and  times='" & ts & "'"
      

  12.   

    谢谢两位的回答,我已经测试单步执行和设置断点没有问题,但是我的程序是用timer件触发的,自动执行的查询关键代码是这样的:
    dt=date
     ts = "07:40"
       Call cdata
        sql = "select content,dates,times from space where dates='" & dt & "' and  times='" & ts & "'"
        rs.Open sql, conn, 3, 1
        i = rs.RecordCount
        ReDim s(1 To i)
    For j = 1 To rs.RecordCount
        s(j) = rs.Fields("content")
        rs.MoveNext
    Next
      rs.Close
      conn.Close
    就是想不通为什么会查到前两天的数据,用date这个函数返回的应该是今天的日期啊??
      

  13.   

    paoluo(一天到晚游泳的鱼) 大哥在不在啊我用
    dt = date
     ts = "07:45"
       sql = "select * from  space where DateDiff(dd, dates, '" & dt & "') = 0 and  times='" & ts & "'"
    返回的数据还是两天的数据,为什么啊??好郁闷!恳请在线的各位大虾帮帮忙!在线等!!
      

  14.   

    這樣試下看dt = date
     ts = "07:45"
       sql = "select * from  space where DateDiff(dd, dates, GetDate()) = 0 and  times='" & ts & "'"
      

  15.   

    paoluo(一天到晚游泳的鱼)大哥 在不在
    还是不行啊,代码是按照你上面写的:
    Set rs = New ADODB.Recordset
     ts = "07:40"
       Call cdata
        sql = "select content,dates,times from space where DateDiff(dd, dates, GetDate()) = 0 and  times='" & ts & "'"
        rs.Open sql, conn, 3, 1
        i = rs.RecordCount郁闷啊,不知道怎么搞的,请帮忙啊!
      

  16.   

    你没有搞清楚问题的关键:
    1 如果你的日期和时间字段使用的是 DateTime 类型,那么它们都是以 Double 类型存储的,整数部分表示日期,小数部分表示时间(一天中的几分之几)。Date 函数的返回值也是如此。2 向数据库引擎传送的 SQL 语句中,日期必须用“字符串日期值”来表示。进入数据库引擎后,它会进行字符串向 Double 类型的转换。3 字符串日期的表示方法有多种,首先可以是美式或英式,可以全部数字也可以夹杂英文月份(可以是缩写)。最关键的是使用哪一种引号,如果是 Access 库,使用 #,如果是 SQL server 库使用 '。我一般不在 SQL 语句中夹杂日期函数计算,一,因为需要逐条记录计算,效率会受影响,特别是记录多时。二,并非所有数据库引擎都支持 VB 内部函数。sql = "select content,dates,times from space where dates='" & Format(Date, "yyyy-mm-dd") & "' and  times='" & ts & "'"
      

  17.   

    sql = "select content,dates,times from space where dates='" & Format(Date, "yyyy-mm-dd") & "' and  times='" & ts & "'"------------
    如果dates中僅有日期,而時間全部為0的話,這個沒有問題。但是如果時間部分不為0,這個語句可能會查詢不出東西。不過看樓主的數據,時間和日期好象是分開兩個字段存儲的,那就應該沒有問題。
      

  18.   

    怪怪啊!! 还是不行,撞到鬼了!按照2位说的做了,情况还是一样 ,程序运行一天就返回一天的数据,运行2天还是返回2天的数据,今天和昨天的数据。郁闷!快疯了!!paoluo(一天到晚游泳的鱼)和of123()  两位大哥在线再给我帮帮忙 想想办法?
      

  19.   

    ts = "07:45"
    sql = "select content,dates,times from space where dates='" & Format(Date, "yyyy-mm-dd") & "' and  times='" & ts & "'"
    补充下,上面的代码是我现在查询的语句,返回的数据的时间是07:45没有错,就是日期不对,老是返回昨天的,我想要是运行3天可能会得到3天的数据!
      

  20.   

    问题解决了,我自己解决的,不过我还是要给分给paoluo,帮助了我不少。