delphi 字符转日期

procedure TForm2.Button2Click(Sender: TObject);
var
qday:TDateTime;
begin
qday:=strToDate(dbtext2.Caption) ;
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('select * from qa WHERE q_name= '''+dbtext1.Caption+'''and q_day= qday and q_title='''+dbedit1.Text+'''') ;
adoquery3.Open;

end;
提示错误说qday没有默认值 我要如何做

datetime类型的数据在SQL里面也是个文本类型的数据,数据库在执行sql的时候应该还会解析一次,因此在查询的时候其实是这样的:q_daye='2014-01-01',你如果这样在数据库中查询,肯定sql是可以执行的,那么在delphi里面的话则是需要这样表示:
adoquery3.SQL.Add('select * from qa WHERE q_name= '''+dbtext1.Caption+''' and
q_day='''+formatdatetime('yyyy-mm-dd',qday)+''' and q_title='''+dbedit1.Text+'''') ;

如果你之前的转换是正确的那么这里这样就可以了,用了formatdatetime函数以后,实际上又变成一个字符串类型的数据了,至于如果你需要的日期类型形式如果不是短日期类型的话,那么你可以去查询一个formatdatetime函数,网上有很多,各种格式类型的表现方式是什么样的都有,我就不一一列出来了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-09
dbtext2.Caption是什么内容