delphi 字符转日期
procedureTForm2.Button2Click(Sender:TObject);varqday:TDateTime;beginqday:=strToDate(d...
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没有默认值 我要如何做 展开
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没有默认值 我要如何做 展开
2个回答
展开全部
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函数,网上有很多,各种格式类型的表现方式是什么样的都有,我就不一一列出来了
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函数,网上有很多,各种格式类型的表现方式是什么样的都有,我就不一一列出来了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询