Q&A

  • ACCESS DB의 날짜/시간 필드에서 날짜만 가져오기..
delphi, access db, ado connection을 이용하여 프로그램 중입니다.



AdoQry1.Close;

AdoQry1.SQL.Clear;

AdoQry1.SQL.Add('SELECT * FROM Table1 WHERE HDATE = :xHDATE');

AdoQry1.Parameters.ParamByName('xHDATE').Value := Now;

AdoQry1.Open;



위 문장을 실행시 오늘에 Table1 Data가 나타나야 되는데...

요놈의 날짜/시간 필드에서 시간 때문에 한개의 데이타도 나오지 않읍니다.



오라클에서는 TO_CHAR()함수도 먹던데..엑세스라서...쩝

즉,

2000-01-01 11:10:51 거래처A

2000-01-01 11:10:52 거래처B

2000-01-01 11:10:53 거래처C

2000-01-01 11:10:54 거래처D

데이타가 있다면

Now()를 2000-01-01 11:10:55라 가정할때 한개의 레코드도 셀렉트가 않되요..



시간은 달라도 날짜만 같으면 데이타를 가져올 방법....이나

어떻게 날짜만 뽑아서 비교할 수 있는 방법이 없나요...

부탁드립니다.







2  COMMENTS
  • Profile
    ACCESS 2000.04.15 05:04
    엑소라인 wrote:

    > delphi, access db, ado connection을 이용하여 프로그램 중입니다.

    >

    > AdoQry1.Close;

    > AdoQry1.SQL.Clear;

    > AdoQry1.SQL.Add('SELECT * FROM Table1 WHERE HDATE = :xHDATE');

    > AdoQry1.Parameters.ParamByName('xHDATE').Value := Now;

    > AdoQry1.Open;

    >

    > 위 문장을 실행시 오늘에 Table1 Data가 나타나야 되는데...

    > 요놈의 날짜/시간 필드에서 시간 때문에 한개의 데이타도 나오지 않읍니다.

    >

    > 오라클에서는 TO_CHAR()함수도 먹던데..엑세스라서...쩝

    > 즉,

    > 2000-01-01 11:10:51 거래처A

    > 2000-01-01 11:10:52 거래처B

    > 2000-01-01 11:10:53 거래처C

    > 2000-01-01 11:10:54 거래처D

    > 데이타가 있다면

    > Now()를 2000-01-01 11:10:55라 가정할때 한개의 레코드도 셀렉트가 않되요..

    >

    > 시간은 달라도 날짜만 같으면 데이타를 가져올 방법....이나

    > 어떻게 날짜만 뽑아서 비교할 수 있는 방법이 없나요...

    > 부탁드립니다.

    >

    >

    >



    ACCESS에서는 날짜만 비교시 Int()함수나 DateValue()함수를 써야합니다.

    AdoQry1.Close;

    AdoQry1.SQL.Clear;

    AdoQry1.SQL.Add('SELECT * FROM Table1 WHERE DateValue(HDATE) = DateValue(:xHDATE)');

    AdoQry1.Parameters.ParamByName('xHDATE').Value := Now;

    AdoQry1.Open;



    도움이 되었기를...



  • Profile
    nilriri 2000.04.11 17:39
    select * from table1 where hdate between :fromdate and :todate;

    parambyname('fromdate').value := strtodatetime(formatdatetime('yyyymmdd',now))

    parambyname('fromdate').value := strtodatetime(formatdatetime('yyyymmdd',다음날))



    strtodatetime(formatdatetime('yyyymmdd',now)) <= 이값은 2000-4-11 12:00.00일테니까...



    이렇게하면 되지 않을까요?





    엑소라인 wrote:

    > delphi, access db, ado connection을 이용하여 프로그램 중입니다.

    >

    > AdoQry1.Close;

    > AdoQry1.SQL.Clear;

    > AdoQry1.SQL.Add('SELECT * FROM Table1 WHERE HDATE = :xHDATE');

    > AdoQry1.Parameters.ParamByName('xHDATE').Value := Now;

    > AdoQry1.Open;

    >

    > 위 문장을 실행시 오늘에 Table1 Data가 나타나야 되는데...

    > 요놈의 날짜/시간 필드에서 시간 때문에 한개의 데이타도 나오지 않읍니다.

    >

    > 오라클에서는 TO_CHAR()함수도 먹던데..엑세스라서...쩝

    > 즉,

    > 2000-01-01 11:10:51 거래처A

    > 2000-01-01 11:10:52 거래처B

    > 2000-01-01 11:10:53 거래처C

    > 2000-01-01 11:10:54 거래처D

    > 데이타가 있다면

    > Now()를 2000-01-01 11:10:55라 가정할때 한개의 레코드도 셀렉트가 않되요..

    >

    > 시간은 달라도 날짜만 같으면 데이타를 가져올 방법....이나

    > 어떻게 날짜만 뽑아서 비교할 수 있는 방법이 없나요...

    > 부탁드립니다.

    >

    >

    >