nowtime :string; 
begin
           nowtime := FormatDateTime('yyyy-mm-dd hh:mm:ss',Now()) ;
           close;
           SQL.Clear;
           SQL.Add('insert into tbl_SMSendTask');
           SQL.Add('(CreatorID,ServiceID,OperationType,');
           SQL.Add('sm_Content,');
           SQL.Add('OrgAddr,DestAddr,');
           SQL.Add('SendType,TaskStatus,FeeType,FeeCode,');
           SQL.Add('SendTime,MsgID)');
           SQL.Add('values (''a'',''jk'',''ps'',');
           SQL.Add(' ''test'',');
           SQL.Add('''test1'',''test2'',');
           SQL.Add('''2'',''0'',''01'',''0'',');
           SQL.Add('nowtime,''0'')');
           //open;
     //      ExecSQL;
         end;
  //       ADOQuery1.Active := True;       ExecSQL;
         ADOQuery1.ExecSQL ;
         //ADOQuery1.close;
         ADOConnection1.close;
问题处在nowtime那边,我跟到程序里面格式化时间正常,但是写sql库的时候就出问题,提示:"从字符串转化datetime 发生错误",但如果我不用变量nowtime,直接用格式好的时间:SQL.Add('''2010-06-10 23:59:25'',''0'')');这种方式写库就没问题,谁知道怎么改啊,郁闷了,如果我要把test改成其他sting变量的话比如:name,该怎么写

解决方案 »

  1.   

    nowtime := FormatDateTime('yyyy-mm-dd hh:nn:ss',Now()) ;
      

  2.   

    你查一下你机器的时间设置,是不是设置成了上下午的模式,就是有中文显示的那种,那种取出来的格式,sql数据库不认的。
      

  3.   

    ls 2位,我有跟进去看了,nowtime格式化后格式没问题,我用格式好的时间格式可以写入库表中
      

  4.   

    SQLServer 
    SQL.Add('GetDate()"',''0'')');
      

  5.   

    SQL.Add('''2'',''0'',''01'',''0'',');
      SQL.Add('nowtime,''0'')');这里也有问题
    改为下面的试试
    SQL.Add('''2'',''0'',''01'',''0'',''');
    SQL.Add(nowtime+''',''0'')');
      

  6.   

    nowtime是字符串,少了引号
    SQL.Add(nowtime+''',''0'')');