<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: convert date format in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102705#M28751</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another option is to create an informat which is then used to convert the data.&amp;nbsp; The following code creates informats for all months from Jan 2000 - Dec 2012, obviously you can easily increase this range in the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;picture dt_pic low-high='%B %Y' (datatype=date);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dt_infmt;&lt;/P&gt;&lt;P&gt;retain fmtname 'dt_in' type 'J';&lt;/P&gt;&lt;P&gt;do i=0 to 155;&lt;/P&gt;&lt;P&gt;&amp;nbsp; label=intnx('month','01jan2000'd,i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; start=strip(put(label,dt_pic15.));&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format cntlin=dt_infmt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;new_date=input(date,dt_in.);&lt;/P&gt;&lt;P&gt;format new_date date9.;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 10 Jul 2012 10:54:51 GMT</pubDate>
    <dc:creator>Keith</dc:creator>
    <dc:date>2012-07-10T10:54:51Z</dc:date>
    <item>
      <title>convert date format</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102700#M28746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a dataset with a character variable whose name is date,it looks like this:&amp;nbsp; April 2000.&lt;/P&gt;&lt;P&gt;I want to convert this variable to a standard numerical SAS date variable&amp;nbsp; like 04/01/2000&amp;nbsp; or '01Apr2000'd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please advise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;length date $15.;&lt;/P&gt;&lt;P&gt;date='April 2000';output;&lt;/P&gt;&lt;P&gt;date='March 2001';output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Jul 2012 16:54:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102700#M28746</guid>
      <dc:creator>Mike_Davis</dc:creator>
      <dc:date>2012-07-09T16:54:18Z</dc:date>
    </item>
    <item>
      <title>Re: convert date format</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102701#M28747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please give me some advise,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data need(keep=date date2 );&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;month=scan(date,1);&lt;/P&gt;&lt;P&gt;year=scan(date,2);&lt;/P&gt;&lt;P&gt;temp1=cats('01',substr(month,1,3),year);&lt;/P&gt;&lt;P&gt;date2=input(temp1,date9.);&lt;/P&gt;&lt;P&gt;format date2 mmddyys10.;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Jul 2012 17:29:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102701#M28747</guid>
      <dc:creator>Mike_Davis</dc:creator>
      <dc:date>2012-07-09T17:29:23Z</dc:date>
    </item>
    <item>
      <title>Re: convert date format</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102702#M28748</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ata have;&lt;/P&gt;&lt;P&gt;length date $15.;&lt;/P&gt;&lt;P&gt;date='April 2000';output;&lt;/P&gt;&lt;P&gt;date='March 2001';output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt; set have;&lt;/P&gt;&lt;P&gt;newdate=input(cats('01',substr(date,1,3),scan(date,2)),date9.);&lt;/P&gt;&lt;P&gt;format newdate mmddyy10.;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Jul 2012 17:44:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102702#M28748</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-07-09T17:44:00Z</dc:date>
    </item>
    <item>
      <title>Re: convert date format</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102703#M28749</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The posted solutions look fine. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a related efficiency trick.&amp;nbsp; If you want to go with the version that you posted that creates MONTH and YEAR, you can cut out a couple of functions by using this code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;length month $ 3;&lt;/P&gt;&lt;P&gt;month = date;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since there is only room to store 3 characters, you get the first 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Jul 2012 18:04:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102703#M28749</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-07-09T18:04:56Z</dc:date>
    </item>
    <item>
      <title>Re: convert date format</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102704#M28750</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could also use the MDY() function to convert stand alone values into a numeric date:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; format new_date MMDDYY10.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Substr the month and year. Might have to use a PROC FORMAT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to convert the character month name into a 1,2,3,4...*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; mnth = substr(...);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; yr = substr(...);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; new_date = MDY(mnth, 1, year); &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Jul 2012 20:26:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102704#M28750</guid>
      <dc:creator>robby_beum</dc:creator>
      <dc:date>2012-07-09T20:26:09Z</dc:date>
    </item>
    <item>
      <title>Re: convert date format</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102705#M28751</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another option is to create an informat which is then used to convert the data.&amp;nbsp; The following code creates informats for all months from Jan 2000 - Dec 2012, obviously you can easily increase this range in the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;picture dt_pic low-high='%B %Y' (datatype=date);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dt_infmt;&lt;/P&gt;&lt;P&gt;retain fmtname 'dt_in' type 'J';&lt;/P&gt;&lt;P&gt;do i=0 to 155;&lt;/P&gt;&lt;P&gt;&amp;nbsp; label=intnx('month','01jan2000'd,i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; start=strip(put(label,dt_pic15.));&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format cntlin=dt_infmt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;new_date=input(date,dt_in.);&lt;/P&gt;&lt;P&gt;format new_date date9.;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Jul 2012 10:54:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/convert-date-format/m-p/102705#M28751</guid>
      <dc:creator>Keith</dc:creator>
      <dc:date>2012-07-10T10:54:51Z</dc:date>
    </item>
  </channel>
</rss>

