怎么书写(easy!)(50分)

  • 主题发起人 主题发起人 chinarlzn
  • 开始时间 开始时间
C

chinarlzn

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎么书写查询条件,例如
Select * From Calender where data=00-3-7 17:43:27
但我试了一下,不行,后来又改为:
Select * From Calender where data=‘00-3-7 17:43:27 ’
还是不行!
于是又改为:
Select * From Calender where data=#00-3-7 17:43:27#
结果在程序中还是不行,但在SQL Explore中成功!
不知为什么?data 为时间类型,
要是为其它类型又该如何书写?不用参数
 
我猜你不是直接把上述字串加进Sql里的吧?

你是不是
var myDate:TDate;

myDate:='00-3-7 17:43:27'
Query1.Sql.Text:='Select * From Calender where data='+myDate
Query1.Open

问题在于要先设好两个跟时间有关的环境变量
 
LongDateFormat:='yy-dd,hh:mm:ss';
DateSeparator:='-';
 
data为表中的一个字段名,其类型为DataTime类型,而条件字段值
'00-3-7 17:43:27'相当于一个字符串类型,
它是从一个Combobox中取出,动态的添加到
sql中,如:
sql:=Select * From canlender Where data='+Combobox.text;
Query.sql.add(sql);
Query.open
 
Select * From Calender where data=:ll
parambyname('ll').value:=1/1/1996 12:00 am
 
依我的办法试试先?
 
注意你的DB中的日期和你的OS中的日期/时间的顺序和格式,同时建议使用长日期格式。
 
不如用参数查询:
select * form x where data=:date1;
params[0].value:=xxxx;
xxxx可为自动类型;

 
就你的问题,应该这样做:(我是用C++Builder的,你应该能看明白)
Query->SQL->Add("Select * From canlender Where data=:Str");
Query->ParamByName("Str")->AsDateTime = Combobox->Text;
Query->Open();

 
多人接受答案了。
 
后退
顶部