2016-12-21 1 views
-1

Comment puis-je sélectionner une partie de la date? Par exemple, cette date ici, 2009-01-30T09: 50: 00, je veux sélectionner le 30. Comment puis-je faire cela?Choix de la partie voulue d'une date

Merci

+0

oh a oublié de mentionner c'est un caractère au moment – Joe

Répondre

0

SCAN est super bon à ceci:

dtvar = '2009-01-30T09:50:00' 

days = scan(dtvar,3,'-T:'); 
1

Vous pouvez utiliser SUBSTR(char_string, start_position,no_of_chars_to_read) pour extraire une partie de votre date

str = "2009-01-30T09:50:00"; 
sub_str = SUBSTR(str, 8, 2); 
0

Je suggère que lorsqu'ils traitent avec les dates/datetimes vous les convertissez en formats internes SAS. Cela vous évite beaucoup de douleur sur la route. Quand il s'agit de formatage obscur de datetimes, vous pouvez utiliser le format proc, commande d'image pour définir votre entrée spécifique. Ce qui suit fonctionne pour ce cas et devrait fonctionner avec l'ensemble de données complet.

proc format;/*Define the format*/ 
    picture mydate other='%0Y-%0m-%0DT%0H:%0M:%0S' (datatype=datetime); 
run; 

data a; 
    full_date_time='2009-01-30T09:50:00'dt; /*The input.*/ 
    date_part=datepart(full_date_time); 
    day_of_the_month=day(date_part); /*this is the '30' you are after.*/ 
run; 

La beauté de cette approche est que, après tout cela, vous pouvez faire toutes les manipulations normales de date SAS que votre coeur fait valoir.

Pour en savoir plus sur le formatage de l'image, voir http://www2.sas.com/proceedings/sugi31/243-31.pdf