delphi7+access2003数据查询问题 delphi7+access2003开发程序,想选择一段时间内的数据记录,我写的sql语句如下:select * form [tablename] where 时间 between DateTimePicker1.date and DateTimePicker2.date其中时间我设置的是 日期类型, 程序执行的时候, 查询没有记录, 可数据库里明明有符合这个时间段的有记录,就是没查询出来,大侠们,这是怎么回事呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 断点看看出来的SQL语句到底是什么。 检查时间格式。可以试试 >= <=方式的 select * form [tablename] where 时间 >= #2012-4-20# and 时间 <= #2012-4-25#这样试试 断点:sql =select * from [tablename] where 时间 between DateTimePicker1.date and DateTimePicker2.date 然后显示datetimepicker1.date 没有默认值这个是怎么回事? 我现在主要是这个时间格式好像不怎么对刚才跟踪了一下,datetimepicker1.date的值是浮点数 用参数传递日期吧,Access查询时日期格式是有要求的 strSQL := strSQL + ' and 时间字段 between #'+ 时间A +'# and #'+ 时间B +'#' 1、时间格式条件应使用>,<,>=,<=;between and是很不好用的。2、问题肯定出在时间格式上多尝试,比如#2012-04-20# sql:=sql+'where (时间 = datetimePicker1.date)';查询之后提示:datetimepicker1.date 无默认值时间在数据库里设置的是 日期/时间 类型, 短日期,我不执行sql语句的时候datetimepicker1.date 是有值的: edit1.text:=datetostr(datetimepicker1.date); edit1 在程序执行之后 显示的是datetimepicker1的日期。 可是为什么执行语句之后会有上面那个提示呢? 请高手指教! sql:=sql+' where 时间 = #'+datetimePicker1.date+'#'; 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)+'#'你自己试试。 怎样防止数据库中插入重复数据 怎么才能知道程序异常退出的原因? ★☆★☆★☆★☆★☆简单的vacomm的COM操作问题,急!!! 如此截获Application退出的消息 开贴补1000分,请 ly_liuyang(Liu Yang) 进来接分(2) 完了,dbgrideh竟然要注册,辛苦编的可运行竟然不能运行程序.有免费的吗?快给一个免费的给我吧 关于SQL语句的问题! 怎样通过combo.text 得到其对应的combo.item[]的值 delphi case语句相关问题 C/S类型地数据库应用客户端软件一运行就非法操作 如何将韩文转换成unicode码? sql server
可以试试 >= <=方式的
这样试试
断点:sql =select * from [tablename] where 时间 between DateTimePicker1.date and DateTimePicker2.date
然后显示datetimepicker1.date 没有默认值
这个是怎么回事?
我现在主要是这个时间格式好像不怎么对
刚才跟踪了一下,datetimepicker1.date的值是浮点数
strSQL := strSQL + ' and 时间字段 between #'+ 时间A +'# and #'+ 时间B +'#'
2、问题肯定出在时间格式上多尝试,比如#2012-04-20#
sql:=sql+'where (时间 = datetimePicker1.date)';查询之后提示:datetimepicker1.date 无默认值时间在数据库里设置的是 日期/时间 类型, 短日期,我不执行sql语句的时候datetimepicker1.date 是有值的: edit1.text:=datetostr(datetimepicker1.date); edit1 在程序执行之后 显示的是datetimepicker1的日期。 可是为什么执行语句之后会有上面那个提示呢? 请高手指教!
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)+'#'
你自己试试。