Q&A

  • 날짜 비교 문제....
파라독스 DB에서 날짜를 타임까지 넣어야하기에 스트링(yyyy-mm-dd hh:nn)으로 잡았습니다.그리고 현재의 날짜 이전의 데이터를 가져오고 싶어서 Query 문을 썼는데 1번은 Key error 가 나구요.. 2번은 시간까지 비교해서 현재 시간 이전의 데이터를 모두 찾습니다.. 어떻게 해야하는지 고수님들의 조언을 부탁드립니다...

며칠째 이 문제로 고심하고 있습니다..

1. with Query1 do

begin

close;

SQL.Clear;

Query := 'Select * From "DiagResv.db"';

Query := Query + ' Where SubString(DateTime from 1 to 4) like ''';

Query := Query + inttoStr(Year) + '%'' and';

Query := Query + ' SubString(DateTime from 5 to 2) like ''';

Query := Query + inttoStr(month) + '%'' and';

Query := Query + ' SubString(DateTime from 9 to 2) < ''';

Query := Query + inttoStr(Day) + '%''';

SQL.Add(Query);

ExecSql;

Open;

end;



2. with Query1 do

begin

close;

SQL.Clear;

Query := 'Select * From "DiagResv.db"';

Query := Query + ' Where SubString(DateTime from 1 to 10) < ''';

Query := Query + formatdatetime('yyyy-mm-dd',now) + '%''';

SQL.Add(Query);

ExecSql;

Open;

end;

2  COMMENTS
  • Profile
    허일학 2000.01.19 20:37
    Coolstar wrote:

    > 파라독스 DB에서 날짜를 타임까지 넣어야하기에 스트링(yyyy-mm-dd hh:nn)으로 잡았습니다.그리고 현재의 날짜 이전의 데이터를 가져오고 싶어서 Query 문을 썼는데 1번은 Key error 가 나구요.. 2번은 시간까지 비교해서 현재 시간 이전의 데이터를 모두 찾습니다.. 어떻게 해야하는지 고수님들의 조언을 부탁드립니다...

    > 며칠째 이 문제로 고심하고 있습니다..

    > 1. with Query1 do

    > begin

    > close;

    > SQL.Clear;

    > Query := 'Select * From "DiagResv.db"';

    > Query := Query + ' Where SubString(DateTime from 1 to 4) like ''';

    > Query := Query + inttoStr(Year) + '%'' and';

    > Query := Query + ' SubString(DateTime from 5 to 2) like ''';

    > Query := Query + inttoStr(month) + '%'' and';

    > Query := Query + ' SubString(DateTime from 9 to 2) < ''';

    > Query := Query + inttoStr(Day) + '%''';

    > SQL.Add(Query);

    > ExecSql;

    > Open;

    > end;

    >

    > 2. with Query1 do

    > begin

    > close;

    > SQL.Clear;

    > Query := 'Select * From "DiagResv.db"';

    > Query := Query + ' Where SubString(DateTime from 1 to 10) < ''';

    > Query := Query + formatdatetime('yyyy-mm-dd',now) + '%''';

    > SQL.Add(Query);

    > ExecSql;

    > Open;

    > end;



    파라독스는 어떤지는 잘모르지만...

    저는 이렇게해서 사용하거든요...

    파라독스에서는 어떠한지 해보지는 않았지만 참고가 되었으면

    좋겠군요...

    with Query1 do begin

    close;

    SQL.Clear;

    SQL.Add(' Select * From DiagResv.db ');

    SQL.Add(' Where DateTime < ''1999-01-19 00:00'' ');

    Open;

    end;



  • Profile
    Coolstar 2000.01.19 22:22
    > 파라독스는 어떤지는 잘모르지만...

    > 저는 이렇게해서 사용하거든요...

    > 파라독스에서는 어떠한지 해보지는 않았지만 참고가 되었으면

    > 좋겠군요...

    > with Query1 do begin

    > close;

    > SQL.Clear;

    > SQL.Add(' Select * From DiagResv.db ');

    > SQL.Add(' Where DateTime < ''1999-01-19 00:00'' ');

    > Open;

    > end;

    >



    이렇게 했을 경우에 심각한 오류가 나타나는군요.

    1999-01-18 12:00 이라는 자료가 있을 경우에도 이경우에서는 해당되는 것으로 Select 가 되네요....