CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

VB+ACCESS 查询有关日期类型的数据问题

楼主Crystal0523(玉乖乖)2006-03-25 16:51:13 在 VB / 数据库(包含打印,安装,报表) 提问

有一张表people  
  其中有个字段为日期型,名为birthday  
  现想按年龄段对记录进行查询  
  具体要求是:在两个文本框中输入起始年龄,查找该年龄段内的记录  
   
  f   =   Val(txtFrom.Text):   t   =   Val(txtTo.Text)  
      rsPeople.Open   "select   *   from   people   where   '"&   DateDiff(yyyy,   Date,   出生日期)   &   "'>='"&   f   &"'   and   '"&   DateDiff(yyyy,   Date,   出生日期)   &   "'<='"&   t   &"'  
   
  出现的问题:即使我把查询中的f改成具体的数值,查询结果也会把全部记录查找出来,好像没有这个查询条件的限制。  
   
  各位高手,请问这是什么问题?该如何修改才能达到要求呢?  
  谢了! 问题点数:50、回复次数:5Top

1 楼shwu()回复于 2006-03-25 17:56:40 得分 30

在Access中,日期型用‘#’来表示。  
  另外你的比较字段birthday,怎么没出现在Where条件中呢?  
  DateDiff(yyyy,   Date,   出生日期)中的Date指的是系统当前  
  日期吧,datediff函数的结果应该是个数值,而不是日期。  
  我推测你的两个文本框应该是输入具体的日期的吧?如果是,  
  应该这样写sql语句。  
  "select   *   from   people   where   birthday   between   #"   &   f   &"#   and   #"&   t   "#"  
  不知道对吗?Top

2 楼province_(雍昊)回复于 2006-03-25 18:11:24 得分 20

出生日期就是LZ的字段,关键是他用DATEDIFF时和他的本意不符合,T和F是两个日期,而DATEDIFF是返回两个参数之间的天数,两者牛头对马嘴。楼上用BETWEEN就很好,简单明了。Top

3 楼Crystal0523(玉乖乖)回复于 2006-03-25 18:31:57 得分 0

不好意思,我没有说清楚,感谢shwu和province_的回答。  
   
  “出生日期”是指表中的字段名  
  可是  
  文本框中输入的是具体的年龄数值,而不是日期。  
   
  请问该如何解决呢?  
   
  这里比较疑惑的还有VB中调用SQL语句连接数据库时,如果使用VB中的函数,比如date,datediff等,该如何引用呢?  
   
  再次感谢!Top

4 楼shwu()回复于 2006-03-25 19:03:33 得分 0

"select   *   from   user   datediff('y',[birthday],date())>="   &f   &"   and   datediff('y',[birthday],date())<="   &t   &""  
  这样可以。Top

5 楼Crystal0523(玉乖乖)回复于 2006-03-25 19:21:58 得分 0

谢谢!  
  不过shwu的语句有点小错误,少了个where.  
  我改为下面的语句,通过:  
  rsPeople.Open   "select   *   from   people   where   datediff('yyyy',[出生日期],date())>="   &   f   &   "   and   datediff('yyyy',[出生日期],date())<="   &   t   &   "",   conn,   3,   1  
   
  这里的'yyyy'代表年,而'y'代表一年的天数  
   
  再次感谢!结贴!Top

相关问题

  • 数据查询(vb)
  • 数据库中datetime类型的数据,sql查询求助
  • access数据库查询结果数据类型转换问题
  • 用OCI查询怎样获取查询的列数、列名、数据类型?
  • vb中的date数据类型
  • 有关VB数据类型问题!!
  • Access数据库中的日期类型如何写查询?
  • 查询中的数据类型的问题
  • 关于查询和数据类型的问题
  • composite类型数据窗口对象的查询问题

关键词

  • 查询
  • date
  • 出生日期
  • 日期
  • datediff
  • 年龄段
  • yyyy
  • 记录
  • val
  • people

得分解答快速导航

  • 帖主:Crystal0523
  • shwu
  • province_

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo