7
votes

sas informat datetime

Quelqu'un peut-il conseiller sur le SAS Informat approprié de lire dans une date d'heure (jj / mm / yyyy HH: mm) ???

EG P>

data _null_;
informat from_dt datetime????.;
input from_dt ;
put from_dt=;
cards;
01/01/1960 00:00
;run;


0 commentaires

5 Réponses :


0
votes

Cette entrée à partir du SAS Knowledowbase comprend le code d'analyse et de mise en forme DateTime. On dirait que SAS a un excellent système d'aide en ligne.

Le troisième message dans Cet échange sur Google Groupes peut être utile aussi. Il parle de saisir DateTime et fournit du code.

Votre question est si difficile à déchiffrer et je sais si peu de sas, c'est à peu près tout ce que je peux offrir. J'espère que cela aide.


0 commentaires

5
votes

SAS peut ne pas prendre en charge le format DateTime spécifique que vos données sont intégrées. Vous pouvez soit essayer de convertir les données entrantes en un format FRENDLIER ou vous pouvez analyser la dateTime à l'aide du SUBSTR , DHMS et MDO Fonctions Fonctions: XXX

ou vous pouvez également convertir la dateTime chaîne dans un format DateNew.d et entrez la chaîne formatée: xxx

La conversion peut être compressée à une seule déclaration complexe, créant ainsi une macro pour cela pourrait être une bonne Décision.


0 commentaires


8
votes

Je ne pense pas que Informat spécifique est intégré, mais il est relativement facile de rouler le vôtre. Vous trouverez ci-dessous un exemple de création d'une DateTime Informat personnalisé (ceci nécessite un ensemble de données CNTLIN) et un format personnalisé (à l'aide de l'instruction Picture) qui se lit dans votre date d'heure spécifique, puis le format de la sorte pour regarder la même chose que l'entrée. Je l'ai simplifié en supposant que la partie temporelle était toujours minuit (00:00), mais il peut être facilement étendu si vous devez également garder une trace des pièces temporelles également (changez simplement le numéro 86400 à 3600 pour obtenir toutes les heures et 60 pour chaque minute). Il est utile de voir ce qui se passe si vous ouvrez le jeu de données Work.infmt pour voir à quoi cela ressemble. XXX PRE>

Ceci a donné une sortie comme celle-ci: P>

278  data _null_;
279  input from_dt $ 1-20;
280  format from_dt2 mydt.;
281  from_dt2=input(from_dt, dtwithspace.);
282  put from_dt2=;
283  cards;

from_dt2=01/01/1960 00:00
from_dt2=01/02/1999 00:00


0 commentaires

9
votes

La famille des informatismes Anydt * travaille généralement. XXX


1 commentaires

Si quelqu'un essaie cela et que des problèmes avec le mois et la date d'être interprétés de manière incorrecte, essayez de mettre à jour le daestyle en exécutant Options DyTestyle = DMY; dmy; avant l'exemple ci-dessus