Fonction date en jsl.J'ai une table avec un horodatage pour toutes les lignes.
Mais je n'ai besoin que des données des 7 derniers jours. Existe-t-il un moyen simple de supprimer toutes les données des 7 derniers jours.
Nouveau sur jsl et toutes les entrées seront utiles.
Re : Fonction date en jsl.Voici un script complet qui devrait vous montrer un résultat
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 : Fonction date en jsl.Désolé je n'ai pas compris ça plus tôt. Vous aurez besoin d'un Run Formulas() pour vous assurer que toutes les formules sont évaluées avant le 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 );
BTW : Vous n'avez pas vraiment besoin de toutes les colonnes de formules pour le faire.
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 : Fonction date en jsl.J'ai copié exactement le même code et essayé d'exécuter.Toutes les colonnes sont créées correctement.Mais la ligne suivante ne semble pas fonctionner -
"
<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>
Rien n'est sélectionné. J'ai essayé d'utiliser les opérateurs supérieur à, inférieur à et égal à. Rien ne semble fonctionner.
Re : Fonction date en jsl.Le problème est que les fonctions Date courte() et Date abrégée() renvoie des chaînes de caractères et non des valeurs de date. Vous ne pouvez pas comparer une valeur de date (qui est numérique) à une chaîne de caractères.
Essayez ceci à la place :
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 : Fonction date en jsl.Voici le code -
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 : Fonction date en jsl.Pouvez-vous montrer le code exact que vous utilisez et qui ne fonctionne pas, et pourriez-vous fournir un exemple de votre tableau de données ?
Re : Fonction date en jsl.Merci pour la réponse. Comme je l'ai mentionné ci-dessus, j'ai créé une nouvelle colonne et imprimé aujourd'hui() - In Days(7) qui fonctionne parfaitement bien.
Après cela, si j'essaie de comparer 2 colonnes, je ne vois aucun résultat/erreur. Toutes les colonnes de date sont numériques.
Re : Fonction date en jsl.Je n'ai pas JMP 12 à ma disposition pour vérifier si la fonction In Days() est disponible.Cependant, puisque tout ce que In Days() fait est de déterminer le nombre de secondes dans une journée, puis de multiplier le résultat par le nombre dans le (7), vous pouvez simplement changer la formule en :
today()-7*60*60*24
Re : Fonction date en jsl.Ce morceau de script ne fonctionne pas pour moi.
la partie "aujourd'hui() - Indays(7) fonctionne mais quelque chose ne va pas avec la comparaison de date.
Le débogueur n'affiche aucune erreur mais rien ne se passe lorsque je l'exécute. J'utilise JMP 12. Est-ce un problème?
Re : Fonction date en jsl.dt << select where( today() - In Days( 7 ) < :Your date column );
dt << delete rows;
Cela sélectionnera toutes les lignes où votre colonne de date (remplacez son nom dans la première ligne du JSL) est inférieure à la date et heure actuelle - 7 jours.Ensuite, les lignes de suppression supprimeront toutes les lignes sélectionnées.
Si vous souhaitez que les lignes soient supprimées 7 jours avant minuit, et non 7 jours avant ce moment (aujourd'hui()), vous devez soustraire l'heure actuelle de la valeur de la fonction aujourd'hui().
dt << select where( today() - Time of Day( today() ) - In Days( 7 ) < :Your date column );
dt << delete rows;