date函数查询数据库,不明白请帮忙!

shuijinyue 2007-07-27 10:00:03
我使用date函数查询数据库,想返回当天的日期的数据,但是得到的结果是
三天内的数据库,从我程序运行起的三天内数据,包括今天的数据!为什么?
请各大虾帮忙!!!!
...全文
288 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2007-08-15
  • 打赏
  • 举报
回复
?

怎麼解決的?
shuijinyue 2007-08-15
  • 打赏
  • 举报
回复
问题解决了,我自己解决的,不过我还是要给分给paoluo,帮助了我不少。
shuijinyue 2007-08-04
  • 打赏
  • 举报
回复
ts = "07:45"
sql = "select content,dates,times from space where dates='" & Format(Date, "yyyy-mm-dd") & "' and times='" & ts & "'"
补充下,上面的代码是我现在查询的语句,返回的数据的时间是07:45没有错,就是日期不对,老是返回昨天的,我想要是运行3天可能会得到3天的数据!
shuijinyue 2007-08-04
  • 打赏
  • 举报
回复
怪怪啊!! 还是不行,撞到鬼了!按照2位说的做了,情况还是一样 ,程序运行一天就返回一天的数据,运行2天还是返回2天的数据,今天和昨天的数据。郁闷!快疯了!!

paoluo(一天到晚游泳的鱼)和of123() 两位大哥在线再给我帮帮忙 想想办法?
paoluo 2007-08-02
  • 打赏
  • 举报
回复
sql = "select content,dates,times from space where dates='" & Format(Date, "yyyy-mm-dd") & "' and times='" & ts & "'"

------------
如果dates中僅有日期,而時間全部為0的話,這個沒有問題。

但是如果時間部分不為0,這個語句可能會查詢不出東西。

不過看樓主的數據,時間和日期好象是分開兩個字段存儲的,那就應該沒有問題。
shuijinyue 2007-08-02
  • 打赏
  • 举报
回复
谢谢!希望不再 出什么问题,马上结帖给 分!
of123 2007-08-02
  • 打赏
  • 举报
回复
你没有搞清楚问题的关键:
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 & "'"
shuijinyue 2007-08-02
  • 打赏
  • 举报
回复
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

郁闷啊,不知道怎么搞的,请帮忙啊!
shuijinyue 2007-07-31
  • 打赏
  • 举报
回复
好的,但是要2两天才有结果,如果可以我马上结帖!
paoluo 2007-07-31
  • 打赏
  • 举报
回复
這樣試下看

dt = date
ts = "07:45"
sql = "select * from space where DateDiff(dd, dates, GetDate()) = 0 and times='" & ts & "'"
shuijinyue 2007-07-31
  • 打赏
  • 举报
回复
paoluo(一天到晚游泳的鱼) 大哥在不在啊我用
dt = date
ts = "07:45"
sql = "select * from space where DateDiff(dd, dates, '" & dt & "') = 0 and times='" & ts & "'"
返回的数据还是两天的数据,为什么啊??好郁闷!

恳请在线的各位大虾帮帮忙!

在线等!!


paoluo 2007-07-27
  • 打赏
  • 举报
回复
參考下MS SQL聯機幫助上DateDiff的用法。
shuijinyue 2007-07-27
  • 打赏
  • 举报
回复
DateDiff(dd, dates, '" & dt & "') = 0
这句话不明白,也没有见过请paoluo大哥告诉我,谢谢!
paoluo 2007-07-27
  • 打赏
  • 举报
回复
如果想用dt

dt = date
ts = "07:45"
sql = "select * from [space] where DateDiff(dd, dates, '" & dt & "') = 0 and times='" & ts & "'"
paoluo 2007-07-27
  • 打赏
  • 举报
回复

--去掉dt, 可以直接用GetDate()
ts = "07:45"
sql = "select * from [space] where DateDiff(dd, dates, GetDate()) = 0 and times='" & ts & "'"
shuijinyue 2007-07-27
  • 打赏
  • 举报
回复
SQL数据库,dates类型是字符,格式是yyyy-mm-dd
paoluo 2007-07-27
  • 打赏
  • 举报
回复
什麼數據庫?

另外,dates的類型是什麼?

如果是字符型的話,格式是怎樣的?
shuijinyue 2007-07-27
  • 打赏
  • 举报
回复
Select * From 表 Where DateDiff(dd, 時間字段, GetDate()) = 0
这句话不懂?我的查询语句只这样的
dt = date
ts = "07:45"
sql = "select*from space where dates='" & dt & "' and times='" & ts & "'"
paoluo 2007-07-27
  • 打赏
  • 举报
回复
--MS SQL
Select * From 表 Where DateDiff(dd, 時間字段, GetDate()) = 0
shuijinyue 2007-07-27
  • 打赏
  • 举报
回复
谢谢两位的回答,我已经测试单步执行和设置断点没有问题,但是我的程序是用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这个函数返回的应该是今天的日期啊??
加载更多回复(3)

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧