最近在做一个程序,涉及到将时间类型数据录入数据库,出现Data type mismatch in criteria expression.错误。
源码:With MainControlFrm.ADOQuery_UploadData do
begin
  Close;
  SQL.Clear;
  ConnectionString := ConnectStr;
  SQL.Add('Insert into BatteryData ([TotalTime], [Steptime]) values(:TT, :ST)');
  Parameters.ParamByName('TT').Value := StrData1;
  Parameters.ParamByName('ST').Value := StrData2;
  ExecSQL;
endTotalTime和Steptime在数据库中是长时间类型‘12:34:56’的形式,我存储的StrData1字符串想存成“1234:56:78”的形式,因为有可能大于23:59:59。
凡是StrData1和StrData2大于23:59:59的参数 在执行过程中都会报错,小于的话就一切正常。想请教下如何将大于23:59:59的数据比如26:12:34存进数据库。比如1d:02:12:34也可以。
这两个字段不能存成字符串形式因为后面还需要用DBchart直接读取它们作为坐标轴数据。

解决方案 »

  1.   

    不符合日期格式,怎么能存到日期字段中呢
      

  2.   

    是的,调试的时候也发现了。那比如超过23:59:59的时间如何存进数据库?只能字符串形式?
      

  3.   

    对,如果满足日期型,就用其它形式,只要方便你操作就可以,即使改成字符型字段,也不影响你坐标呀
      

  4.   

    那就转化为字符型吧  按照你的要求 是不可能以日期格式进行存储了 
      

  5.   

    PS: 用字符型是唯一明智的选择,处理起来也与日期型一样方便