2015-12-24 1 views
0

Bonjour tous,numéros PROC SQL Concat dans SAS et le format que la date - Guide SAS E 5.1 ​​

J'ai 3 colonnes différentes dans un ensemble de données qui représentent un mois, une date et une année en tant que numéros . Mon problème en ce moment est de concaténer ces éléments ensemble dans PROC SQL tout en les gardant formatés en tant que date. Jusqu'à présent, j'ai essayé ce qui suit, mais je n'ai que des résultats qui montrent chaque date comme une période ("."). Vous remarquerez que j'ai dû les convertir en caractères pour pouvoir les concaténer. Je ai fatigué réorganiser l'année/jour/mois, et essayé avec et sans le «-» entre eux. Pourtant, je reçois juste une période dans chaque rangée.

Il convient de noter que les chiffres sont corrects lorsqu'ils sont simplement concaténés par eux-mêmes, sans aucune tentative de mise en forme de la date. Mais j'ai besoin que leur colonne soit une colonne DATE pour le processus pour lequel les données sont utilisées.

PUT(f.YR,z4.)|| PUT(f.MTH,z2.) ||PUT(f.DAY,z2.) 

^semble bien avec et sans '-' séparant les nombres. Sur cette note, le date9. Le format n'est pas le format de date absolument nécessaire, j'ai vraiment besoin que ce soit une sorte de DATE.

Qu'est-ce qui me manque ici? Ne devrais-je pas trop compter sur PROC SQL pour faire cela?

Répondre

1

Utilisez la fonction MDY, puisque les variables sont déjà des nombres, je pense que c'est la meilleure option.

proc sql; 
select 
    mdy(12,1,2015) format ddmmyy10. as DAY_DATE_FORMAT 
from table; 
quit; 

Juste pour vous expliquer pourquoi votre code n'a pas fonctionné.

La date9. informat que vous utilisez attend une entrée de mois comme "Jan", "Feb", etc. Mais vous passez un nombre à l'informat (z2.). Si vous changez la date9. à ddmmyy10 dans votre entrée, ça va fonctionner.