저는 JMP 대화형을 사용하여 입력 시작 및 종료 시간을 가져온 다음 SQL을 사용하여 데이터 테이블을 필터링하는 것을 좋아합니다. 매개변수 dateb 및 datee가 '2017-10-10', '2017-11-11'과 같이 정의된 경우 제대로 작동하지만 할당된 변수 dateb 및 datee를 사용하면 올바른 필터링(빈 테이블)을 얻지 못합니다.
당신이 제공할 수 있는 도움에 감사드립니다. 감사해요.
-----------------------
디풀림 = 오늘 ();
디플로우림 = 오늘 () - 일 후 ( 730 );
와우 = 새창 ( "yyyy-mm-dd 형식으로 날짜를 선택하세요" ,
<< 모달 ,
<< 결과 반환 ,
V 목록 상자 (
텍스트 상자 ( "시작 날짜:" ),
str1 = 번호 편집 상자 (
디플로우림,
10 ,
<< Set함수 (
기능 ( {저것},
lowlim = str1 << 얻다
)
)
),
텍스트 상자 ( "종료일:" ),
str2 = 번호 편집 상자 (
디풀림,
10 ,
<< Set함수 (
기능 ( {이것},
업림 = str2 << 얻다
),
)
),
str1 << 형식 설정 ( 체재 ( "yyyy-mm-dd" ) ),
str2 << 형식 설정 ( 체재 ( "yyyy-mm-dd" ) )
),
H 목록 상자 ( 버튼 상자 ( "좋아요" ), 버튼 상자 ( "취소" ) ),
);
날짜b = 날짜로 (W w[ "str1" ]);
데이트 상대 = 날짜로 (W w[ "str2" ]);
날짜b = 체재 (날짜b, "yyyy-mm-dd" );
데이트 상대 = 체재 (날짜, "yyyy-mm-dd" );
dt1 = 데이터베이스 열기 (
"DSN=XXX;UID=루트;PWD=xxxxx;" ,
"'dateb'와 'datee' 사이에 날짜(시작 시간)가 있는 xyz에서 *를 선택하세요." , "TMP"
);
이 수정 사항이 작동하는지 확인하십시오.
defuplim = Today();
deflowlim = Today() - In Days( 730 );
ww = New Window( "Pick Your Dates in yyyy-mm-dd format",
<<MODAL></MODAL>
문자열 날짜를 데이터베이스가 이해할 수 있도록 날짜로 다시 변환해야 합니다.Oracle인 경우 다음과 같은 문이 필요합니다.
sql_statement = evalinsert(
"Select *
from xyz
where date(starttime) between to_date('^dateb^', 'YYYY-MM-DD')
and to_date('^datee^', 'YYYY-MM-DD') ");
dt1 = Open Database("DSN=XXX;UID=root;PWD=xxxxx;", sql_statement);