<?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: Character to Date and Time separately in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710825#M218887</link>
    <description>&lt;P&gt;I seriously doubt that your code worked with the data as presented, as the code uses a YMD order for the date, but the string dates are in MDY.&lt;/P&gt;
&lt;P&gt;See this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input RecordID $ Date :$10. Time :$4.;
datalines;
1 12/14/2020  1214
2 11/19/2019  900
3 1/11/2021 815
4 1/8/2021  131
;

data want;
set have;
date_new = input(date,mmddyy10.);
if length(time) = 3
then time_new = input(substr(time,1,1)!!":"!!substr(time,2),time5.);
else time_new = input(substr(time,1,2)!!":"!!substr(time,3),time5.);
datetime_new = dhms(date_new,0,0,time_new);
format
  date_new yymmdd10.
  time_new time5.
  datetime_new e8601dt19.
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 12 Jan 2021 15:29:51 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2021-01-12T15:29:51Z</dc:date>
    <item>
      <title>Character to Date and Time separately</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710818#M218884</link>
      <description>&lt;P&gt;I have the following dataset, I would like to convert date and time that are currently in the CHAR format to date and time respectively, and datetime&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;RecordID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Time&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/14/2020&lt;/TD&gt;&lt;TD&gt;1214&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;11/19/2019&lt;/TD&gt;&lt;TD&gt;900&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/11/2021&lt;/TD&gt;&lt;TD&gt;815&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/8/2021&lt;/TD&gt;&lt;TD&gt;1314&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;want:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;RecordID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Time&lt;/TD&gt;&lt;TD&gt;date_new&lt;/TD&gt;&lt;TD&gt;time_new&lt;/TD&gt;&lt;TD&gt;date_time_new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;12/14/2020&lt;/TD&gt;&lt;TD&gt;1214&lt;/TD&gt;&lt;TD&gt;12/14/2020&lt;/TD&gt;&lt;TD&gt;12:14&lt;/TD&gt;&lt;TD&gt;12/14/2020 12:14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;11/19/2019&lt;/TD&gt;&lt;TD&gt;900&lt;/TD&gt;&lt;TD&gt;11/19/2019&lt;/TD&gt;&lt;TD&gt;9:00&lt;/TD&gt;&lt;TD&gt;11/19/2019 9:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1/11/2021&lt;/TD&gt;&lt;TD&gt;815&lt;/TD&gt;&lt;TD&gt;1/11/2021&lt;/TD&gt;&lt;TD&gt;8:15&lt;/TD&gt;&lt;TD&gt;1/11/2021 8:15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1/8/2021&lt;/TD&gt;&lt;TD&gt;1314&lt;/TD&gt;&lt;TD&gt;1/8/2021&lt;/TD&gt;&lt;TD&gt;13:14&lt;/TD&gt;&lt;TD&gt;1/8/2021 13:14&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried the following:&lt;/P&gt;&lt;P&gt;data want; set have;&lt;/P&gt;&lt;P&gt;format Date_newmmddyy10. Time_new time10.&amp;nbsp; date_time_new datetime.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Date_new= input(Date,yymmdd10.);&lt;/P&gt;&lt;P&gt;Time_new= input(substr(Time, 12, 10), time10.);&lt;/P&gt;&lt;P&gt;Date_time_new = DHMS (Date_new, 0, 0, time_new);&amp;nbsp;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Date_new works but not the time_new or date_time_new&lt;/P&gt;</description>
      <pubDate>Tue, 12 Jan 2021 15:12:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710818#M218884</guid>
      <dc:creator>pacman94</dc:creator>
      <dc:date>2021-01-12T15:12:31Z</dc:date>
    </item>
    <item>
      <title>Re: Character to Date and Time separately</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710821#M218886</link>
      <description>&lt;P&gt;Try this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Date $ 1-10 Time $ 12-16;
datalines;
12/14/2020 1214
11/19/2019 900 
1/11/2021  815 
1/8/2021   1314
;

data want;
   set have;
   date_new = input(Date, mmddyy10.);
   time_new = input(cats(substr(Time, 1, length(Time)-2), ":", substr(Time, length(Time)-1)), time5.);
   datetime_new = dhms(date_new, 0, 0, time_new);

   format date_new mmddyy10. time_new time5. datetime_new datetime20.;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Date       Time  date_new     time_new  datetime_new 
12/14/2020 1214  12/14/2020   12:14     14DEC2020:12:14:00 
11/19/2019 900   11/19/2019   9:00      19NOV2019:09:00:00 
1/11/2021  815   01/11/2021   8:15      11JAN2021:08:15:00 
1/8/2021   1314  01/08/2021   13:14     08JAN2021:13:14:00 &lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Jan 2021 15:32:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710821#M218886</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2021-01-12T15:32:24Z</dc:date>
    </item>
    <item>
      <title>Re: Character to Date and Time separately</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710825#M218887</link>
      <description>&lt;P&gt;I seriously doubt that your code worked with the data as presented, as the code uses a YMD order for the date, but the string dates are in MDY.&lt;/P&gt;
&lt;P&gt;See this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input RecordID $ Date :$10. Time :$4.;
datalines;
1 12/14/2020  1214
2 11/19/2019  900
3 1/11/2021 815
4 1/8/2021  131
;

data want;
set have;
date_new = input(date,mmddyy10.);
if length(time) = 3
then time_new = input(substr(time,1,1)!!":"!!substr(time,2),time5.);
else time_new = input(substr(time,1,2)!!":"!!substr(time,3),time5.);
datetime_new = dhms(date_new,0,0,time_new);
format
  date_new yymmdd10.
  time_new time5.
  datetime_new e8601dt19.
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Jan 2021 15:29:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710825#M218887</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-01-12T15:29:51Z</dc:date>
    </item>
    <item>
      <title>Re: Character to Date and Time separately</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710835#M218889</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/360798"&gt;@pacman94&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have the following dataset, I would like to convert date and time that are currently in the CHAR format to date and time respectively, and datetime&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;have:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;RecordID&lt;/TD&gt;
&lt;TD&gt;Date&lt;/TD&gt;
&lt;TD&gt;Time&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12/14/2020&lt;/TD&gt;
&lt;TD&gt;1214&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;11/19/2019&lt;/TD&gt;
&lt;TD&gt;900&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/11/2021&lt;/TD&gt;
&lt;TD&gt;815&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1/8/2021&lt;/TD&gt;
&lt;TD&gt;1314&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;want:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;RecordID&lt;/TD&gt;
&lt;TD&gt;Date&lt;/TD&gt;
&lt;TD&gt;Time&lt;/TD&gt;
&lt;TD&gt;date_new&lt;/TD&gt;
&lt;TD&gt;time_new&lt;/TD&gt;
&lt;TD&gt;date_time_new&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12/14/2020&lt;/TD&gt;
&lt;TD&gt;1214&lt;/TD&gt;
&lt;TD&gt;12/14/2020&lt;/TD&gt;
&lt;TD&gt;12:14&lt;/TD&gt;
&lt;TD&gt;12/14/2020 12:14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;11/19/2019&lt;/TD&gt;
&lt;TD&gt;900&lt;/TD&gt;
&lt;TD&gt;11/19/2019&lt;/TD&gt;
&lt;TD&gt;9:00&lt;/TD&gt;
&lt;TD&gt;11/19/2019 9:00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/11/2021&lt;/TD&gt;
&lt;TD&gt;815&lt;/TD&gt;
&lt;TD&gt;1/11/2021&lt;/TD&gt;
&lt;TD&gt;8:15&lt;/TD&gt;
&lt;TD&gt;1/11/2021 8:15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1/8/2021&lt;/TD&gt;
&lt;TD&gt;1314&lt;/TD&gt;
&lt;TD&gt;1/8/2021&lt;/TD&gt;
&lt;TD&gt;13:14&lt;/TD&gt;
&lt;TD&gt;1/8/2021 13:14&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried the following:&lt;/P&gt;
&lt;P&gt;data want; set have;&lt;/P&gt;
&lt;P&gt;format Date_newmmddyy10. Time_new time10.&amp;nbsp; date_time_new datetime.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#FF0000"&gt;^missing a space&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Date_new= input(Date,&lt;U&gt;yymmdd10&lt;/U&gt;.); &lt;FONT color="#FF0000"&gt;&amp;lt;wrong informat for the shown example date values&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Time_new= input(substr(Time, 12, 10), time10.); &lt;FONT color="#FF0000"&gt;&amp;lt;Time has 4 characters from your example, substr is told to start at position 12 and read 10. So either this makes no sense or you have not shown us what your actual "data" looks like.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Date_time_new = DHMS (Date_new, 0, 0, time_new);&amp;nbsp;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Date_new works but not the time_new or date_time_new&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Jan 2021 15:47:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710835#M218889</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-01-12T15:47:32Z</dc:date>
    </item>
    <item>
      <title>Re: Character to Date and Time separately</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710837#M218891</link>
      <description>&lt;P&gt;data have;&lt;BR /&gt;length date $10 time $4;&lt;BR /&gt;infile cards dlm='09'x truncover;&lt;BR /&gt;input record_id $ date time $;&lt;BR /&gt;cards;&lt;BR /&gt;1 12/14/2020 1214&lt;BR /&gt;2 11/19/2019 900&lt;BR /&gt;3 1/11/2021 815&lt;BR /&gt;4 1/8/2021 1314&lt;BR /&gt;; run;&lt;/P&gt;
&lt;P&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;date_new = input(date, mmddyy10.);&lt;BR /&gt;&lt;BR /&gt;time = put(input(time,best4.),z4.);&lt;BR /&gt;hh = input(substr(time,1,2),2.); /*hour */&lt;BR /&gt;mm = input(substr(time,3,2),2.); /*minute*/&lt;BR /&gt;time_new = hms(hh,mm,0);&lt;BR /&gt;&lt;BR /&gt;date_time_new = dhms(date_new,hh,mm,0);&lt;BR /&gt;&lt;BR /&gt;format date_new mmddyy10. &lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;time_new time5.&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;date_time_new datetime20.;&lt;BR /&gt;drop hh mm;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Jan 2021 15:53:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710837#M218891</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2021-01-12T15:53:22Z</dc:date>
    </item>
    <item>
      <title>Re: Character to Date and Time separately</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710839#M218892</link>
      <description>&lt;P&gt;Append two extra zeros to the time string values and then use HHMMSS informat.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input date_str :$10. time_str :$4. ;
datalines;
12/14/2020 1214
11/19/2019 900 
1/11/2021  815 
1/8/2021   1314
;

data want;
  set have;
  date=input(date_str,mmddyy10.);
  time=input(cats(time_str,'00'),hhmmss6.);
  datetime=dhms(date,0,0,time);
  format date date9. time time5. datetime datetime19.;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs     date_str     time_str         date     time               datetime

 1     12/14/2020      1214      14DEC2020    12:14     14DEC2020:12:14:00
 2     11/19/2019      900       19NOV2019     9:00     19NOV2019:09:00:00
 3     1/11/2021       815       11JAN2021     8:15     11JAN2021:08:15:00
 4     1/8/2021        1314      08JAN2021    13:14     08JAN2021:13:14:00

&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Jan 2021 15:59:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Character-to-Date-and-Time-separately/m-p/710839#M218892</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-01-12T15:59:35Z</dc:date>
    </item>
  </channel>
</rss>

