回 帖 发 新 帖 刷新版面

主题:[原创]请教日期型数据的查询

[em15]各位大师:
我用的编程语言是 c++ Builder 6.0 用SQL语句的select * From 员工表 Where 日期 Between Edit1->text And Edit2->text;方法进行查询,总得不到结果,请大师指教。

回复列表 (共3个回复)

沙发

SQL的语法错误。BCB环境下的关于时间的SQL语法和标准的SQL有区别.比如你这样写就对了:select * From 员工表 Where 日期 = #2007-1-12#;
涉及EDIT时候,需要定义变量.加上导入的SQL语句,也是如此.

板凳


谢谢!
我这样定意为什么还是没有结果:
TDateTime rjdate1,rjdate2;
rjdate1=StrTodate(Edit1->Text);
rjdate2=StrTodate(Edit2->Text);
select * From 员工表 Where 日期 Between # rjdate1 And rjdate2 #;
请求帮助[em15]

3 楼

String s,x,y;
x="#"+Edit1->Text+"#";
y="#"+Edit2->Text+"#";
s="select * From 员工表 Where 日期 Between " +x+" And "+y;
Form1->ADOQuery1->SQL->Add(s);
//==========
注意代入SQL语句的时候,空格的规范。如果你要在SQL里的(TStrings)里定义的方法,这点我也不太清楚。但假如把“select * From 员工表 Where 日期 Between # rjdate1 And rjdate2 #;”写成“select * From 员工表 Where 日期 Between #rjdate1# And #rjdate2#;”,如果定义没错的话,也应该可以的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册