jsl의 날짜 함수.모든 행에 대한 타임 스탬프가 있는 테이블이 있습니다.
하지만 지난 7일 데이터만 필요합니다. 지난 7일이 지난 모든 데이터를 쉽게 삭제할 수 있는 방법이 있습니까?
jsl을 처음 접하고 모든 입력이 도움이 될 것입니다.
Re: jsl의 날짜 함수입니다.다음은 결과를 보여주는 완전한 스크립트입니다.
Names Default to Here( 1 );
dt = New Table( "test",
add rows( 100 ),
New Column( "start date",
formula( Random Uniform( Today() - In Days( 12 ), Today() ) ),
Format( "m/d/y", 10 )
)
);
dt:start date << delete formula;
New Column( "START_SHORT_DATE",
Formula( :start date - Time Of Day( :start date ) ),
Format( "m/d/y", 10 ),
);
New Column( "Todays Date",
Formula( Today() - Time Of Day( Today() ) ),
Format( "m/d/y", 10 )
);
New Column( "Ref Date",
Formula( Today() - In Days( 7 ) ),
Format( "m/d/y", 10 ),
);
Current Data Table() << select where( :Ref Date < :START_SHORT_DATE );
Re: jsl의 날짜 함수입니다.미안 내가 이것을 더 일찍 잡지 못했다. Select Where() 전에 모든 수식이 평가되도록 하려면 Run Formulas()가 필요합니다.
Clear Symbols();
Delete Symbols();
clear globals();
//Open master data list
S = Open("~/Downloads/sample.xlsx");
New Column( "START_SHORT_DATE",
Formula( :start date - Time Of Day( :start date ) ),
Format( "m/d/y", 10 ),
);
New Column( "Todays Date",
Formula( Today() - Time Of Day( Today() ) ),
Format( "m/d/y", 10 )
);
New Column( "Ref Date",
Formula( Today() - In Days( 7 ) ),
Format( "m/d/y", 10 ),
);
s << run formulas();
s << select where( :Ref Date < :START_SHORT_DATE );
BTW: 이 작업을 수행하기 위해 모든 수식 열이 실제로 필요한 것은 아닙니다.
Clear Symbols();
Delete Symbols();
Clear Globals();
//Open master data list
S = Open( "~/Downloads/sample.xlsx" );
s << select where(
(Today() - Time Of Day( Today() ) - In Days( 7 )) < :start date - Time Of Day( :start date )
);
Re: jsl의 날짜 함수입니다.나는 똑같은 코드를 복사하고 실행을 시도했습니다. 모든 열이 제대로 생성되었습니다. 그러나 다음 줄이 작동하지 않는 것 같습니다.
"
<SPAN class="token function">current data table</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> select where</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Ref Date <SPAN class="token operator"><</SPAN> <SPAN class="token punctuation">:</SPAN>START_SHORT_DATE <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
아무것도 선택되지 않습니다.보다 큼, 작음 및 같음 연산자를 사용해 보았습니다.아무것도 작동하지 않는 것 같습니다.
Re: jsl의 날짜 함수입니다.문제는 기능이다. 짧은 데이트() 그리고 약어 날짜() 날짜 값이 아닌 문자열을 반환합니다. 날짜 값(숫자)을 문자열과 비교할 수 없습니다.
대신 다음을 시도하십시오.
New Column( "START_SHORT_DATE",
Formula( :start date - Time Of Day( :start date ) ),
Format( "m/d/y", 10 ),
);
New Column( "Todays Date",
Formula( Today() - Time Of Day( Today() ) ),
Format( "m/d/y", 10 )
);
New Column( "Ref Date",
Formula( Today() - In Days( 7 ) ),
Format( "m/d/y", 10 ),
);
current data table() << select where( :Ref Date < :START_SHORT_DATE );
Re: jsl의 날짜 함수입니다.코드는 다음과 같습니다.
Clear Symbols();
Delete Symbols();
clear globals();
//Open master data list
S = Open("C:\Enthu\sample.xlsx","invisible");
current data table(S);
New Column( "START_SHORT_DATE", Numeric, Formula( Short Date( :start date ) ), );
New Column("Todays Date", Character,Formula(Abbrev Date(today())));
New Column("Ref Date", Character,Formula(Abbrev Date(today()-In Days(7))));
S << select where( :Ref Date < :START_SHORT_DATE );
Re: jsl의 날짜 함수입니다.작동하지 않는 정확한 코드를 보여줄 수 있고 데이터 테이블의 샘플을 제공할 수 있습니까?
Re: jsl의 날짜 함수입니다.응답해 주셔서 감사합니다. 위에서 언급했듯이 새 열을 만들고 today() - In Days(7)를 인쇄했는데 완벽하게 잘 작동합니다.
이후에 2개의 열을 비교하려고 하면 결과/오류가 표시되지 않습니다. 모든 날짜 열은 숫자입니다.
Re: jsl의 날짜 함수입니다.In Days() 함수를 사용할 수 있는지 확인하기 위해 사용할 수 있는 JMP 12가 없습니다.그러나 In Days()가 수행하는 모든 작업은 하루의 초 수를 결정한 다음 결과에 (7)의 숫자를 곱하는 것이므로 공식을 다음과 같이 변경할 수 있습니다.
today()-7*60*60*24
Re: jsl의 날짜 함수입니다.이 스크립트는 저에게 적합하지 않습니다.
"today() - Indays(7) 부분은 작동하지만 날짜 비교에 문제가 있습니다.
디버거는 오류를 표시하지 않지만 이것을 실행할 때 아무 일도 일어나지 않습니다. 저는 JMP12를 사용하고 있습니다. 그게 문제인가요?
Re: jsl의 날짜 함수입니다.dt << select where( today() - In Days( 7 ) < :Your date column );
dt << delete rows;
이렇게 하면 날짜 열(JSL의 첫 번째 줄에서 이름 바꾸기)이 현재 날짜 시간(7일)보다 작은 모든 행이 선택됩니다.그런 다음 삭제 행은 선택한 모든 행을 삭제합니다.
이 시점(today()) 7일 전이 아니라 자정 7일 전 행을 삭제하려면 today() 함수 값에서 현재 시간을 빼야 합니다.
dt << select where( today() - Time of Day( today() ) - In Days( 7 ) < :Your date column );
dt << delete rows;