Bonjour,
Le problème est très simple et je suis capable de le résoudre, mais d'une manière ou d'une autre, il semble y avoir un bogue dans la sortie. Vous vous demandez donc s'il y a une erreur dans ma formule?
J'ai une table JMP avec une heure Col au format (mm / jj / aaaa h: m: s AM / PM)
dt << Nouvelle colonne ("DATE_FLAG", Caractère, Nominal,
Formule (Si (
Date de l'abréviation (: Nom ("TIME_COL @ ABC")) <=
Date abrégée (22 juillet 2020),
"avant",
"après"
)));
Maintenant, enfin, dans ma table mise à jour, j'obtiens la colonne DATE_FLAG et les valeurs avant / après. Mais certaines des valeurs / lignes) qui devraient être avant disent que les dates sont antérieures au 2 juillet 2020 sont toujours étiquetées comme après? Le reste des lignes est étiqueté comme prévu.
Alors qu'est-ce qui ne va pas? Dois-je spécifier le format de la date et de l'heure? Si oui, comment puis-je?
Je pense avoir compris le problème, mais j'ai besoin d'aide pour cela:
La comparaison de date abrégée compare les deux chaînes de date de caractère et c'est pourquoi lorsque 07/04/2020 10:12:34 AM est converti en 07/4/2020 par rapport au 07/22/2020 donne après au lieu d'avant.
Comment puis-je réparer cela?
Merci
Il n'est pas nécessaire d'effectuer une conversion en autre chose pour comparer les valeurs de date.
Utilisez simplement une constante de date dans votre comparaison en spécifiant la date au format ddMonYYYY:
dt << New Column( "DATE_FLAG",
Character,
Nominal,
Formula( If( :Name( "TIME_COL@ABC" ) <= 22Jul2020, "before", "after" ) )
);
En savoir plus sur les valeurs de date:
Utilisation des dates, heures, datetimes et durées dans JMP
Hou la la! Merci. C'est plus simple !!!