按日期查询今日记录的疑问(请高手赐教)?急

tdsoft 2002-04-19 08:59:01
环境1 在winnt,win2000,win98(第一版)(装有CB5,VB6,Access2000)中可检索

到正确的记录(某一天的记录)。
环境2 在win98(第二版)(只装有Access2000)中不能检索到正确的记录(某一天的

记录)。
在环境2中若把“FTIME > #"+timeprew1+"# and FTIME < #"+timeprew1+"#+1";

”改为“FTIME < #"+timepr+"#”(即小于某一天的记录),例如:当timeprew1为

2000年9月20日,查询到的结果是2000年9月以前的记录。2000年9月1日至2000年9

月20日之间的记录无法查到。

好象没有进行日期的比较,只比较了年和月。同ADO的版本有关吗?
如何才能查询到某一天的记录呢?

注:数据库为Access2000,其FTIME字段的类型为“日期/时间”格式为“常规日

期”


原码如下:
AnsiString timeprew,timeprew1;
timeprew=DateTimeToStr(Now());
timeprew1=DateToStr(timeprew);
QuickReport1->ADOConnection1->Close();
QuickReport1->ADOConnection1->LoginPrompt=false;


QuickReport1->ADOConnection1->ConnectionString="Provider=Microsoft.Jet.

OLEDB.4.0;Data Source="+sqldb+";Mode=ReadWrite;Persist Security

Info=False;Jet OLEDB:Database Password=123";

QuickReport1->ADOConnection1->Connected=true;


QuickReport1->ADODataSet1->Connection=QuickReport2->ADOConnection1;

QuickReport1->ADODataSet1->CommandText="select * from db where FTIME >

#"+timeprew1+"# and FTIME < #"+timeprew1+"#+1";

QuickReport1->ADODataSet1->Open();



...全文
12 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tdsoft 2002-04-22
有关系吗?一般都是默认的,98、NT、2000应该都一样。
  • 打赏
  • 举报
回复
ping2000 2002-04-22
时间格式还取决于WINDOWS系统时间格式,
WINDOWS系统时间格式在"控制面板"的"区域选项"里设置
  • 打赏
  • 举报
回复
tdsoft 2002-04-22
问题解决了?将timeprew=DateTimeToStr(Now());
timeprew1=DateToStr(timeprew);
改为
timeprew1=Now().FormatString("yyyy-mm-dd");
就成功了。
接着无论用>、<号还是Between 都可以。
感谢
Chimae(齐藤) & borlandor(大民)
但是为什么=DateToStr(timeprew)不行呢?在Win2000却可以。DateToStr()得到的也应该是字符串格式(02-4-21)呀?
  • 打赏
  • 举报
回复
Borlandor 2002-04-19
"select * from db where FTIME Between #"+timeprew1+"# and #"+timeprew1+"#+1";

  • 打赏
  • 举报
回复
Chimae 2002-04-19
给你提个建议,日期转换成字符串格式来比较!这样不会混淆!
  • 打赏
  • 举报
回复
Geranium 2002-04-19
up
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2002-04-19 08:59
社区公告
暂无公告