delphi7+access2003数据查询问题

sunrainy2011 2012-04-26 09:35:31
delphi7+access2003开发程序,想选择一段时间内的数据记录,我写的sql语句如下:

select * form [tablename] where 时间 between DateTimePicker1.date and DateTimePicker2.date

其中时间我设置的是 日期类型, 程序执行的时候, 查询没有记录, 可数据库里明明有符合这个时间段的有记录,就是没

查询出来,大侠们,这是怎么回事呀?
...全文
211 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看见佛 2012-04-27
  • 打赏
  • 举报
回复

1.断点出SQL语句

2.然后把SQL语句在ACCESS查询一下,看看是否有语法错误。

sql:=sql+'where (时间 = datetimePicker1.date)';你这里是把datetimePicker1.date当成字符串了
按楼上的写法:adoquery.Sql.Text := 'select * form [tablename] where 时间 >= #2012-4-20# and 时间 <= #2012-4-25#'
做你的的变量方式应该是
adoquery.Sql.Text := 'select * form tab where 时间 >= #'+datetostr(datetimepicker1.date)+'# and 时间 <= #'+datetostr(datetimepicker1.date)+'#'
你自己试试。
kaikai_kk 2012-04-27
  • 打赏
  • 举报
回复
sql:=sql+' where 时间 = #'+datetimePicker1.date+'#';

sunrainy2011 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
断点看看出来的SQL语句到底是什么。
[/Quote]

sql:=sql+'where (时间 = datetimePicker1.date)';

查询之后提示:datetimepicker1.date 无默认值

时间在数据库里设置的是 日期/时间 类型, 短日期,

我不执行sql语句的时候datetimepicker1.date 是有值的:

edit1.text:=datetostr(datetimepicker1.date);

edit1 在程序执行之后 显示的是datetimepicker1的日期。 可是为什么执行语句之后会有上面那个提示呢? 请高手指教!
sunrainy2011 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
select * form [tablename] where 时间 >= #2012-4-20# and 时间 <= #2012-4-25#
这样试试
[/Quote]

我现在主要是这个时间格式好像不怎么对
刚才跟踪了一下,datetimepicker1.date的值是浮点数
sunrainy2011 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
断点看看出来的SQL语句到底是什么。
[/Quote]

断点:sql =select * from [tablename] where 时间 between DateTimePicker1.date and DateTimePicker2.date
然后显示datetimepicker1.date 没有默认值
这个是怎么回事?
fmj1743458607 2012-04-26
  • 打赏
  • 举报
回复
select * form [tablename] where 时间 >= #2012-4-20# and 时间 <= #2012-4-25#
这样试试
UnkownState 2012-04-26
  • 打赏
  • 举报
回复
检查时间格式。
可以试试 >= <=方式的
我看见佛 2012-04-26
  • 打赏
  • 举报
回复
断点看看出来的SQL语句到底是什么。
都先生 2012-04-26
  • 打赏
  • 举报
回复
1、时间格式条件应使用>,<,>=,<=;between and是很不好用的。
2、问题肯定出在时间格式上多尝试,比如#2012-04-20#
ADSLAN 2012-04-26
  • 打赏
  • 举报
回复
ACCESS 时间类型左右要加#
w84271765 2012-04-26
  • 打赏
  • 举报
回复

strSQL := strSQL + ' and 时间字段 between #'+ 时间A +'# and #'+ 时间B +'#'
Elvis_chen 2012-04-26
  • 打赏
  • 举报
回复
用Format吧
garnel 2012-04-26
  • 打赏
  • 举报
回复
用参数传递日期吧,Access查询时日期格式是有要求的

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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