Aux prises avec les formats de dates, voulez AAAA-MM-JJ
Comme un débutant absolu à la SAS j'ai vite couru dans des problèmes avec le formatage de la date.
J'ai un dataset contenant de l'opération avec les trois types de dates: BUSDATE, SPOTDATE, de la MATURITÉ. Chaque transaction est représenté sur deux lignes, et je veux BUSDATE et SPOTDATE de la ligne 1 mais la MATURITÉ de la ligne 2.
Dans le jeu original, les dates sont au format AAAA-MM-JJ.
DATA masterdata;
SET sourcedata(rename(BUSDATE=BUSDATE2 SPOTDATE=SPOTDATE2 MATURITY=MATURITY2));
BUSDATE=BUSDATE2;
SPOTDATE=SPOTDATE2;
IF TRANS_TYPE='Swap' THEN;
MATURITY=SPOTDATE;
RUN;
Problème est, cela renvoie à quelque chose comme 17169 (qui je suppose est le nombre de jours à partir d'une certaine date).
Comment puis-je faire une sortie au format AAAA-MM-JJ - ou est-ce l'approche de mal; dois-je d'abord convertir la date de variables en une SAS format de date?
Vous devez vous connecter pour publier un commentaire.
si vous avez valide SAS dates, il suffit d'ajouter un FORMAT déclaration à vos DONNÉES ÉTAPE.
SAS dates sont variables numériques. Ils représentent le nombre de jours depuis la 1/1/1960. Vous utilisez un FORMAT d'affichage des dates.
Ajoutant à CarolinaJay réponse, normalement, vous voulez les garder en format numérique, puisque vous pouvez faire des maths (comme "le nombre de jours depuis la date X") avec eux. Toutefois, si pour quelque raison vous avez besoin d'une variable de caractère, vous pouvez le faire:
D'ailleurs, YYMMDD10 sera effectivement vous donner AAAA-MM-JJ, comme vous l'avez demandé; si vous voulez un autre séparateur, voir http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000589916.htm (YYMMDDxw. format) - si vous mettez une lettre après le dernier D, pour certaines lettres, vous obtenez un autre séparateur. Comme, YYMMDDn10. vous donne pas de séparateur, ou YYMMDDs10. vous donne des barres obliques. YYMMDDd10. vous donne des tirets, comme l'omission de la lettre. Ce concept s'applique également à MMJJAA formats, et je pense que quelques autres.