질문입니다..
필드타입은 datetime으로 선언되었구요..
스트링값을 변환하여 datetime으로 선언된 디비에 집어넣으려 합니다..
근데 제가 x4에 변환한것이 틀린지요..자꾸에러가 나는데..값은 올바른 형태인 '2002-02-24 10:00:00'이렇게 되어있는데 에러가 나네요...
이방법 말고 다른방법두 있나요???
있다면 알려주시면 감사하겠습니다...
var
xx4 : tdatetime;
xx5 : tdatetime;
StrSQL,StrDate : String;
x1,x2,x3,x4,x5,x6,x7: string;
begin
x1 := copy(s,1,5); //인덱스
x2 := copy(s,8,6); //called truck
x3 := copy(s,17,6);
x4 := copy(s,23,10);
x4 := formatdatetime('YYYY-MM-DD HH:MM:SS', StrToDate('2002'+ '-'+Copy(x4,1,2)+'-'+copy(x4,3,2)+' '+copy(x4,5,2)+':'+copy(x4,7,2)+':'+copy(x4,9,2)));
x5 := copy(s,33,10);
x6 := copy(s,65,12);
x7 := copy(s,86,10);
StrSQL := '';
StrSQL := 'Insert into logcut_test (no_index,cld_trk,clr_trk,call_time,duration,dial_no,ani_no) values ' +
'(''' + Trim( x1 ) + ''',''' + Trim( x2 ) + ''',''' + Trim( x3 ) + ''',''' + Trim( x4 ) + ''',''' + trim( x5 ) + ''',''' + Trim( x6 ) + ''',''' + Trim( x7 ) + ''')';
with AdoQuery2 do begin
CloseQuery;
SQL.Clear;
SQL.add( StrSQL );
try
ExecSQL;
except
end;
구분문자(보통 슬래시 기호)에 의해 구분되어 있어야 합니다.
그리고 FormatDateTime함수의 반환값은 String형입니다..
여기서 구지 String값을 Date형으로 변환해서 다시 반환할 이유는 없을것
같다는 생각이 들거든요.. 그냥 Copy문으로 해결하셔도 될것 같습니다.
x4 := '2002'+ '-'+Copy(s,1,2)+'-'+copy(s,3,2)+' '+copy(s,5,2)
+':'+copy (s,7,2)+':'+copy(s,9,2);