Q&A

  • [Paradox] Date, Time type 쿼리....ㅠㅠ
안녕하세여.. 타락임다..^^



파라독스에 보면 Date 와 Time 타입이 있어여...



델파이의 TDateTime 타입과 호환이 아주 잘되여..^^



근데, Query 걸때는?????



오라클은 to_char( ,'yyyymmdd') 모 이런식으로 쿼리를 걸수 있는 모양인데...



글문 파라독스는여?? --;;



가령 파라독스 '출발일' 필드에 Date 타입으로 날짜가 들어있는데...



2000년 12월 01일 부터 2001년 1월 31일 사이의 레코드만 뽑구 싶다면?????



쿼리를 어케 걸져?



전 주로 TTable을 쓰지만, 이런 의문이 드네여...ㅠㅠ



아시면 꼭 답변 주세여..^^



사족: "스트링으로 저장해여..^^" 이런류의 답변 사절...--;;;



즐푸 하세여..^^



왕초보 타락천사...^^_________________





5  COMMENTS
  • Profile
    임형호 2000.06.27 19:41
    타락천사 wrote:

    > 안녕하세여.. 타락임다..^^

    >

    > 파라독스에 보면 Date 와 Time 타입이 있어여...

    >

    > 델파이의 TDateTime 타입과 호환이 아주 잘되여..^^

    >

    > 근데, Query 걸때는?????

    >

    > 오라클은 to_char( ,'yyyymmdd') 모 이런식으로 쿼리를 걸수 있는 모양인데...

    >

    > 글문 파라독스는여?? --;;

    >

    > 가령 파라독스 '출발일' 필드에 Date 타입으로 날짜가 들어있는데...

    >

    > 2000년 12월 01일 부터 2001년 1월 31일 사이의 레코드만 뽑구 싶다면?????

    >

    > 쿼리를 어케 걸져?

    >

    > 전 주로 TTable을 쓰지만, 이런 의문이 드네여...ㅠㅠ

    >

    > 아시면 꼭 답변 주세여..^^

    >

    > 사족: "스트링으로 저장해여..^^" 이런류의 답변 사절...--;;;

    >

    > 즐푸 하세여..^^

    >

    > 왕초보 타락천사...^^_________________

    >

    >

    param을 사용하시면 됩니다.

    바로 SQL문에 날짜의 범위를 지정하면 type이 안맞는다는 에러가 발생하더라구요. 그래서 전 param을 사용합니다.

  • Profile
    타락천사 2000.06.27 20:50
    안녕하세여..타락임다..ㅠㅠ



    param 만 가지군 모르겠어여..



    SQL 구문줌 올려줘여..ㅠㅠ



    왕초보 타락천사...ㅠㅠ

  • Profile
    임형호 2000.06.27 21:53
    타락천사 wrote:

    > 안녕하세여..타락임다..ㅠㅠ

    >

    > param 만 가지군 모르겠어여..

    >

    > SQL 구문줌 올려줘여..ㅠㅠ

    >

    > 왕초보 타락천사...ㅠㅠ





    with query1 do begin

    close;

    sql.clear;

    sql.add('select * from DB명');

    sql.add('where 날짜필드>=:inputday1 and 날짜필드<=:inputday2');

    parambyname('inputday1').asdate:=strtodate('1999-01-01');

    parambyname('inputday2').asdate:=strtodate('1999-01-31');

    open;

    end;



    위 구문은 날짜필드의 값을 inputday1, inputday2라는 param변수를 사용하여 구현한것이거든요.

    보통은 위와같은 형태로 사용을 합니다. 자세한 설명은 책을 참조하시면 될것 같습니다.

    sql문장에서 param변수를 선언하고 선언시에는 := 이 아니고 =: 형태입니다. 위에서는

    크거나같다, 작거나같다로 표현하기 위해서 >=: <=: 로 사용했습니다.



    그런 다음 아래에서 parambyname('선언한param변수명').as타입:=대입값;

    as타입에는 asdate, asfloat, asinteger 등이 있으며 현재 저희들은 date타입을 사용하기 위해서 선언했으므로 asdate라고 적어주었구요. 그리고 대입값은 당연히 date형이 되어야합니다. 앞에 as구문으로 선언한 type과 맞아야 됩니다.

    설명이 되었나 모르겠네요. 그럼.. 좋은 하루 되세요. 이만..

    밑에 사발우성님께서 설명을 해놓으셨네요. between을 사용하시는것이 훨씬 나을듯 싶네요

    저두 하나 배워갑니다.



  • Profile
    타락천사 2000.06.27 22:50
    안녕하세여..타락임다..^^



    잘 됨다..^^



    파라미터를 그런식으로 쓸수 있을지 몰랐어여..^^;;;



    글구 좀 첨가하면, 파라미터 변수 선언은 " :Parameter " 식으로 선언함다..



    sql.add('where 날짜필드 >= :inputday1 and 날짜필드 <= :inputday2');



    글구 그 그 밑에 내용을 집어 넣져..^^



    parambyname('inputday1').asdate:=strtodate('1999-01-01');



    글구, 제가 잘 알구 있는지 모르겠지만, "as" 가 들어가는 문장을 예외를 발생시킴다.



    가령.. parambyname('inputday1').asdate:=strtodate('1999-01-01');



    이나, Sender as TEditBox



    그래서 프로그래머가 실수해두 실행시 예외로 알려주져... ^^



    프로그래머가 백과사전을 다외울 천재가 아니라면,, 바람직한 코딩습관이져..^^



    테스트해 보니, Date, Time 타입 다 잘먹네여..^^



    흠.. 몰로 보답하나......ㅠㅠ



    팁모아에 스트링그리드에 체크박스 넣는 테크닉 올릴께여..ㅠㅠ



    하루 죙일 고생하구도 몰라서, 강모모 고수님의 도움으로 해결했어여... ㅠㅠ



    증말 어렵더군여..ㅠㅠ



    라디오 버튼도 동일하게 넣을수 있구여..



    콤보나 에디터, 리스트는 함수 하나 더 추가해야 하는데.....



    이해한다면 쉽게 할수 있을거예여..^^



    즐푸 하세여..^^



    왕초보 타락천사..^_________^

  • Profile
    사발우성 2000.06.27 21:47
    sql.add('where 필드명 between :now1 and :now2');

    parambyname('now1').asdatetime:=datetimepicker1.Date;

    parambyname('now2').asdatetime:=datetimepicker2.Date;



    미천한 실력이쥐만 타락님한테 도움이 되면 좋겠습니당....그럼이만 빠이엽....



    타락천사 wrote:

    > 안녕하세여..타락임다..ㅠㅠ

    >

    > param 만 가지군 모르겠어여..

    >

    > SQL 구문줌 올려줘여..ㅠㅠ

    >

    > 왕초보 타락천사...ㅠㅠ