利用两个DateTimePicker 如何查询具体的时间,其中DateTimePicker1 的kind为 dtkDate,DateTimePicker2 的kind为dtkTime,我的sqlserver数据库有表T1,其中有caozuoriqi字段为DateTime类型,为什么我在两个控件中已经选好了2008-09-01 与 18:27:29,数据库中也存在caozuoriqi为 2008-09-01 18:27:29的记录可就是查不出来,怎么办,是什么原因?我想如果能查出,就可以统计时间精确到时分秒的包括日期与时间的精确范围!with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select id,caozuoriqi from y_liushui where caozuoriqi=:caozuoriqi');
Parameters.ParamByName('caozuoriqi').Value :=Datetimepicker1.datetime+Datetimepicker2.datetime;
showmessage(Datetimetostr(Datetimepicker1.datetime+Datetimepicker1.datetime));
Open;
begin
Close;
SQL.Clear;
SQL.Add('select id,caozuoriqi from y_liushui where caozuoriqi=:caozuoriqi');
Parameters.ParamByName('caozuoriqi').Value :=Datetimepicker1.datetime+Datetimepicker2.datetime;
showmessage(Datetimetostr(Datetimepicker1.datetime+Datetimepicker1.datetime));
Open;
Parameters.ParamByName('caozuoriqi').Value :=trunc(Datetimepicker1.datetime)+frac(Datetimepicker2.datetime);
把时间赋给个变量DATE1,
DATE1:=FORMATDATETIME('YYYYMMDD',DATETIMEPICKER1.Date)+FORMATDATETIME('HH24MMSS',DATETIMEPICKER2.Time);SQL语句里这样写:
where TO_CHAR(caozuoriqi,''YYYYMMDDHH24MISS'')='''+DATE1+'''
DATE1:=FORMATDATETIME('YYYYMMDD',DATETIMEPICKER1.Date)+FORMATDATETIME('HH24MMSS',DATETIMEPICKER2.Time);
同意這種方法.
begin
//基本的控件功能
datetimepicker1.Time := DateTimePicker2.Time;
sTime := FormatDateTime('yyyy-MM-dd hh:mm:ss',DateTimePicker1.DateTime);
strSql := 'select id,caozuoriqi from y_liushui where caozuoriqi = ' + Quotedstr(sTime);
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(strSql);
Open;
end;
end;
begin Close; SQL.Clear; SQL.Add('select id,caozuoriqi from y_liushui where caozuoriqi=:caozuoriqi'); Parameters.ParamByName('caozuoriqi').Value :=Datetimepicker1.datetime+Datetimepicker2.datetime; //.asdatetime:=strtodatetime( formatdatetime('yyyy-mm-dd',dtp1.datetime)+' '+formatdatetime('hh:mm:ss',dtp2.datetime)); showmessage(Datetimetostr(Datetimepicker1.datetime+Datetimepicker1.datetime));Open;
end;
//.value:=strtodatetime( formatdatetime('yyyy-mm-dd',dtp1.datetime)+' '+formatdatetime('hh:mm:ss',dtp2.datetime));
怎么就不行了呢,我代码里一直就是这样用的啊 FORMATDATETIME
代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
DATE1:STRING;
beginwith adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select id,caozuoriqi from y_liushui where TO_CHAR(caozuoriqi,''YYYYMMDDHH24MISS'')='''+DATE1+'''');
DATE1:=FORMATDATETIME('YYYYMMDD',DATETIMEPICKER1.Date)+FORMATDATETIME('HH24MMSS',DATETIMEPICKER2.Time);
Open;
end;end;
你这样写 试试。。
DATE1:=FORMATDATETIME('YYYYMMDD',DATETIMEPICKER1.Date)+FORMATDATETIME('HH24MMSS',DATETIMEPICKER2.Time); SQL.Add('select id,TO_CHAR(caozuoriqi,''YYYYMMDD HH24:MI:SS'') as caozuoriqi from y_liushui where TO_CHAR(caozuoriqi,''YYYYMMDDHH24MISS'')='''+DATE1+'''');