<?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 Help Comparing Datetime Macro Variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557232#M155306</link>
    <description>&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have looked all over the internet and can't really find a solution to a problem I am having.&amp;nbsp; Hoping someone can help me soon.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to update a&amp;nbsp;datetime field&amp;nbsp;from a transactional dataset to a datetime field in a master dataset.&amp;nbsp; To get the particular datetimes that I need, I am running a query to select a&amp;nbsp;datetime into a variable to call when comparing.&amp;nbsp; Let me see if I can step you through my process.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First I am trying to set the datetime variables by selecting from other datasets:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;proc sql;
select 
max(grid_id) as grid_id 
into :stage_grid_id 
from msrflow.msrflow_srp_adj_base_stage s
;
quit;

%put &amp;amp;stage_grid_id;


proc sql;
select 
max(grid_id) as grid_id 
into :base_grid_id
from msrflow.msrflow_srp_adjusters_base 
;
quit;

%put &amp;amp;base_grid_id;&lt;/PRE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="datetime1.jpg" style="width: 137px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29330i0F2815F16989341B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="datetime1.jpg" alt="datetime1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see, I am creating a stage grid ID (which is a datetime) and a base grid ID (which is a datetime).&amp;nbsp; If I dont format, it shows up as some sort of numerical value.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="datetime2.jpg" style="width: 151px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29333i0211C0991C101FF8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="datetime2.jpg" alt="datetime2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I format as a datetime21.2 before I insert into the variable, it looks correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next, I try to do the compare so I can update rows in the dataset to the top variable you see in the screenshots to the bottom variable.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;proc sql;
update msrflow.msrflow_srp_adjusters_base as b
set
	END_GRID_DATE = &amp;amp;stage_grid_id 
where end_grid_date is null and &amp;amp;stage_grid_id &amp;gt; &amp;amp;base_grid_id
;
quit;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I run this code, I get a syntax error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="dateime3.jpg" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29334iCD053C202A1DBB09/image-size/large?v=v2&amp;amp;px=999" role="button" title="dateime3.jpg" alt="dateime3.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I don't format it, it will run properly but must read the datetime wrong because it inserts the incorrect datetime in the master dataset.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="datetime4.jpg" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29335i2D90C6B3CB5E1FAE/image-size/medium?v=v2&amp;amp;px=400" role="button" title="datetime4.jpg" alt="datetime4.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The highlighted datetimes are what inserted.&amp;nbsp; The time that was inserted was 11:13:20 PM.&amp;nbsp; However, as you can see from the screenshot above, it should have been 9:05:56 AM.&amp;nbsp; I have no idea why it is doing this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My primary goal is to be able to compare datetime stamps in order to update this particular dataset and then insert new rows.&amp;nbsp; I am hoping you can see if I am missing something or suggest a better way to do this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 08 May 2019 18:28:53 GMT</pubDate>
    <dc:creator>elwayfan446</dc:creator>
    <dc:date>2019-05-08T18:28:53Z</dc:date>
    <item>
      <title>Help Comparing Datetime Macro Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557232#M155306</link>
      <description>&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have looked all over the internet and can't really find a solution to a problem I am having.&amp;nbsp; Hoping someone can help me soon.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to update a&amp;nbsp;datetime field&amp;nbsp;from a transactional dataset to a datetime field in a master dataset.&amp;nbsp; To get the particular datetimes that I need, I am running a query to select a&amp;nbsp;datetime into a variable to call when comparing.&amp;nbsp; Let me see if I can step you through my process.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First I am trying to set the datetime variables by selecting from other datasets:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;proc sql;
select 
max(grid_id) as grid_id 
into :stage_grid_id 
from msrflow.msrflow_srp_adj_base_stage s
;
quit;

%put &amp;amp;stage_grid_id;


proc sql;
select 
max(grid_id) as grid_id 
into :base_grid_id
from msrflow.msrflow_srp_adjusters_base 
;
quit;

%put &amp;amp;base_grid_id;&lt;/PRE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="datetime1.jpg" style="width: 137px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29330i0F2815F16989341B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="datetime1.jpg" alt="datetime1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see, I am creating a stage grid ID (which is a datetime) and a base grid ID (which is a datetime).&amp;nbsp; If I dont format, it shows up as some sort of numerical value.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="datetime2.jpg" style="width: 151px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29333i0211C0991C101FF8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="datetime2.jpg" alt="datetime2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I format as a datetime21.2 before I insert into the variable, it looks correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next, I try to do the compare so I can update rows in the dataset to the top variable you see in the screenshots to the bottom variable.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;proc sql;
update msrflow.msrflow_srp_adjusters_base as b
set
	END_GRID_DATE = &amp;amp;stage_grid_id 
where end_grid_date is null and &amp;amp;stage_grid_id &amp;gt; &amp;amp;base_grid_id
;
quit;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I run this code, I get a syntax error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="dateime3.jpg" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29334iCD053C202A1DBB09/image-size/large?v=v2&amp;amp;px=999" role="button" title="dateime3.jpg" alt="dateime3.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I don't format it, it will run properly but must read the datetime wrong because it inserts the incorrect datetime in the master dataset.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="datetime4.jpg" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/29335i2D90C6B3CB5E1FAE/image-size/medium?v=v2&amp;amp;px=400" role="button" title="datetime4.jpg" alt="datetime4.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The highlighted datetimes are what inserted.&amp;nbsp; The time that was inserted was 11:13:20 PM.&amp;nbsp; However, as you can see from the screenshot above, it should have been 9:05:56 AM.&amp;nbsp; I have no idea why it is doing this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My primary goal is to be able to compare datetime stamps in order to update this particular dataset and then insert new rows.&amp;nbsp; I am hoping you can see if I am missing something or suggest a better way to do this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 18:28:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557232#M155306</guid>
      <dc:creator>elwayfan446</dc:creator>
      <dc:date>2019-05-08T18:28:53Z</dc:date>
    </item>
    <item>
      <title>Re: Help Comparing Datetime Macro Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557248#M155307</link>
      <description>&lt;P&gt;NOTE: inserting photographs of your data into your post instead of the actual text makes it very hard to read.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It looks like you are not formatting the number of seconds properly when generating the macro variable.&lt;/P&gt;
&lt;P&gt;If you don't tell PROC SQL how to format the value it will use BEST8. which is not longer enough to exactly represent the number of seconds you need for your datetime values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;484   proc sql noprint;
485   select datetime()
486        , datetime() format=32.
487        , datetime() format=datetime20.
488     into :noformat trimmed
489        , :formatted trimmed
490        , :datetimestr trimmed
491     from sashelp.class(obs=1)
492   ;
493   %put &amp;amp;=noformat &amp;amp;=formatted &amp;amp;=datetimestr;
NOFORMAT=1.8729E9 FORMATTED=1872947004 DATETIMESTR=08MAY2019:15:03:24&lt;/PRE&gt;
&lt;P&gt;If your macro variable has a value like&amp;nbsp;1872947004 then you use it as it is.&lt;/P&gt;
&lt;P&gt;But if your macro variable has a value like&amp;nbsp;08MAY2019:15:03:24 then you will need to convert it into a datetime literal (constant) by adding quotes and DT suffix.&lt;/P&gt;
&lt;PRE&gt;%put DateTime value = "&amp;amp;datetimestr"dt ;
DateTime value = "08MAY2019:15:05:56"dt&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 19:06:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557248#M155307</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-05-08T19:06:21Z</dc:date>
    </item>
    <item>
      <title>Re: Help Comparing Datetime Macro Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557298#M155328</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;&amp;nbsp;, this worked well.&amp;nbsp; I am happy that it was such an easy fix.&amp;nbsp; Thank you for the help!&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 21:45:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-Comparing-Datetime-Macro-Variables/m-p/557298#M155328</guid>
      <dc:creator>elwayfan446</dc:creator>
      <dc:date>2019-05-08T21:45:48Z</dc:date>
    </item>
  </channel>
</rss>

