Funzione data in jsl.Ho una tabella con che ha il timestamp per tutte le righe.
Ma ho bisogno solo dei dati degli ultimi 7 giorni. Esiste un modo semplice per eliminare tutti i dati degli ultimi 7 giorni.
Nuovo in jsl e qualsiasi input sarà utile.
Ri: Funzione data in jsl.Ecco uno script completo che dovrebbe mostrarti un risultato
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 );
Ri: Funzione data in jsl.Scusa se non l'ho capito prima. Avrai bisogno di Run Formulas() per assicurarti che tutte le formule vengano valutate prima di Select Where().
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 );
A proposito: non hai davvero bisogno di tutte le colonne della formula per farlo.
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 )
);
Ri: Funzione data in jsl.Ho copiato esattamente lo stesso codice e ho provato a eseguirlo. Tutte le colonne sono state create correttamente. Ma la riga seguente non sembra funzionare:
"
<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>
Nulla viene selezionato. Ho provato a utilizzare gli operatori maggiore di , minore di e uguale a . Niente sembra funzionare.
Ri: Funzione data in jsl.Il problema è che le funzioni Data breve() E Data abbreviata() restituisce stringhe di caratteri non valori di data. Non è possibile confrontare un valore di data (che è numerico) con una stringa di caratteri.
Prova questo invece:
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 );
Ri: Funzione data in jsl.Ecco il codice -
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 );
Ri: Funzione data in jsl.Puoi mostrare il codice esatto che stai utilizzando che non funziona e potresti fornire un campione della tua tabella di dati?
Ri: Funzione data in jsl.Grazie per la risposta. Come ho detto sopra, ho creato una nuova colonna e ho stampato today() - In Days(7) che funziona perfettamente.
Dopo questo, se provo a confrontare 2 colonne, non vedo alcun risultato/errore. Tutte le colonne della data sono numeriche.
Ri: Funzione data in jsl.Non ho a disposizione JMP 12 per verificare se la funzione In Days() è disponibile.Tuttavia, poiché tutto ciò che In Days() sta facendo è determinare il numero di secondi in un giorno e quindi moltiplicare il risultato per il numero nel (7), puoi semplicemente cambiare la formula in:
today()-7*60*60*24
Ri: Funzione data in jsl.Questo pezzo di sceneggiatura non funziona per me.
la parte " today() - Indays(7) funziona ma qualcosa non va nel confronto delle date.
Il debugger non mostra alcun errore ma non succede nulla quando lo eseguo. Sto usando JMP 12. È un problema?
Ri: Funzione data in jsl.dt << select where( today() - In Days( 7 ) < :Your date column );
dt << delete rows;
Questo selezionerà tutte le righe in cui la colonna della data (sostituisci il suo nome nella prima riga del JSL), è inferiore alla data e ora corrente - 7 giorni.Quindi le righe di eliminazione elimineranno tutte le righe selezionate.
Se si desidera che le righe vengano eliminate per essere 7 giorni prima della mezzanotte, non 7 giorni prima di questo momento (oggi()), è necessario sottrarre l'ora corrente dal valore della funzione today().
dt << select where( today() - Time of Day( today() ) - In Days( 7 ) < :Your date column );
dt << delete rows;