主要部分为:
procedure TForm4.Button1Click(Sender: TObject);
var
  StartDate,EndDate,ParamToStr:string;
begin
  StartDate:=DateTimeToStr(DateTimePicker1.DateTime);
  EndDate:=DateTimeToStr(DateTimePicker2.DateTime);
  with Form1 do
    begin
     Query1.Close;
     Query1.SQL.Clear;
    end;
  Form1.Query1.SQL.add('select Photograph from photo_t where DT between'''+StartDate+'''and'''+EndDate+'''');
  Form1.Query1.Active:=True;
  Form1.Query1.First;
  ParamToStr:=Form1.Query1.FieldValues['Photograph'];
  Form4.Image1.Picture.LoadFromFile(ParamToStr);
end;Photography属性的实值是图片的存储路径
当我要检索photo_t表中一定范围的DT(DateTime)属性实值的时候,就会报错,称从字符串向datetime转换时失败用showmessage看了下,发现字符串中是12小时格式,而数据库中是24小时格式。怀疑正是因为这个所以报错,所以试图把它改成24小时格式。但在format属性中用HH替换hh,字符串中仍然是12小时格式。请教高手!

解决方案 »

  1.   


      StartDate:=FormatDateTime(DateTimePicker1.DateTime);
      EndDate:=FormatDateTime(DateTimePicker2.DateTime);
      
      

  2.   

     Form1.Query1.SQL.add('select Photograph from photo_t where DT between'''+StartDate+'''and'''+EndDate+'''');你的dt是不是DateTime类型?你改成下面的试试。我估计就是sql语句中有错,呵呵。'select Photograph from photo_t where DT between to_date('''+StartDate+''',''YYYYMMDD'') and to_date('''+EndDate+''',''YYYYMMDD'')'