|
30억님, 잘 작동을 합니다.
이 감사의 말을 어떻게 전해야 할지..
이런 볼랜드 포럼이 있다는 게 너무나 좋습니다.
30억 님이 쓰신 글 :
: 다른 DB도 마찬가지지만 엑세스도 Date형으로 바꿔줘야 합니다.
: Oracle은 TO_DATE지만 엑세스는 Format입니다.
:
: 예를 들어 '2005-01-01 00:00'이라면 Format ( '2005-01-01 00:00' , 'YYYY-MM-DD HH:NN' ) 이렇게 써주셔야합니다.
: 아래의 SQL을 Between을 풀어서 써보겠습니다.
:
: SELECT TSDateTime, TSValue FROM TimeSeries
: WHERE TSDateTime >= Format ( '2005-01-01 00:00' , 'YYYY-MM-DD HH:NN' ) AND
: TSDateTime <= Format ( '2005-02-01 00:00' , 'YYYY-MM-DD HH:NN' )
:
: 일단 엑세스에서 SQL을 실행해보시고 이상이 없으시면 코딩하는게 낫을것 같습니다. ^^
:
: 초보자 님이 쓰신 글 :
: : MS Access 데이터베이스 DateTime 필드에 "11/12/2003" 의 Data/Time format으로 날짜가 저장 되어 있습니다.
: : 그리고 가령 11/12/2003~11/20/2003 사이의 정보를 TDBChart로 나타내려고 하고 있구요.
: : 그런데 SQL에 문제가 있어 에러가 자꾸 생깁니다. 제 SQL문은 다음과 같습니다.
: :
: : AnsiString asStartDate = QueryPeriodForm->edtSMon->Text + "/";
: : asStartDate += QueryPeriodForm->edtSDay->Text + "/";
: : asStartDate += QueryPeriodForm->edtSYear->Text;
: :
: : AnsiString asEndDate = QueryPeriodForm->edtEMon->Text + "/";
: : asEndDate += QueryPeriodForm->edtEDay->Text + "/";
: : asEndDate += QueryPeriodForm->edtEYear->Text;
: :
: : if(STQuery->Active) STQuery->Close();
: : STQuery->Connection = adoConnect;
: : STQuery->SQL->Clear();
: :
: : STQuery->SQL->Add("SELECT TSDateTime, TSValue");
: : STQuery->SQL->Add(" FROM TimeSeries");
: : STQuery->SQL->Add(" WHERE TSDateTime BETWEEN '"+ asStartDate + "' AND '" + asEndDate + "'");
: :
: : STQuery->Open();
: :
: :
: : 그런데 위와 같이 하니 다음의 에러가 자꾸 뜹니다.
: : "Data type mismatch in criteria expression"
: :
: : 만약 BETWEEN '" -> BETWEEN" 등으로 '을 제거하면 에러는 없어지는데 Query에서 잡히는 게 아무것도 없어요.
: : 혹 asStartDate or asEndDate를 TDate 포맷으로 바꿔줘야 하는 겁니까? 아니면 날짜포맷 **/**/****에 문제가 있는 건가요? 매뉴얼대로 했는데도 이런 에러가 자꾸 생겨 거의 돌 지경입니다.
: : 제발 고수님들의 조언을 부탁드립니다.
|