<?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: Get the elapsed time running some steps of my project and create macro variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Get-the-elapsed-time-running-some-steps-of-my-project-and-create/m-p/784819#M250447</link>
    <description>&lt;P&gt;Something like this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At beginning of Program01:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=""&gt;%put HOUR_START &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; %sysfunc(datetime(), DATETIME20.);
%let hr_start= %sysfunc(datetime());&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Then, at the end of Program02:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=""&gt;%put HOUR_END &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  %sysfunc(datetime(), DATETIME20.);
%let hr_end = %sysfunc(datetime());
%let time_elapsed = %sysfunc(intck(seconds,&amp;amp;hr_start,&amp;amp;hr_end));
%put TIME ELAPSED &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  &amp;amp;time_elapsed SECONDS;

data _null_;
  file msg;&lt;BR /&gt;  retain HS &amp;amp;hr_start HE &amp;amp;hr_end;
  put "BEGIN OF PROCESS: " HS datetime20.;
  put "END OF PROCESS: " HE datetime20.;
  put " ";
  put "database0_2 updated in &amp;amp;time_elapsed seconds.";
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 08 Dec 2021 05:41:52 GMT</pubDate>
    <dc:creator>ChrisNZ</dc:creator>
    <dc:date>2021-12-08T05:41:52Z</dc:date>
    <item>
      <title>Get the elapsed time running some steps of my project and create macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Get-the-elapsed-time-running-some-steps-of-my-project-and-create/m-p/784575#M250401</link>
      <description>&lt;P&gt;Hi guys!&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a project that contains 2 programs linked one in each other and they work like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;---&amp;gt; &lt;STRONG&gt;Program01:&lt;/STRONG&gt; Have a lot of data steps, load some txt files and create the database0_1.&amp;nbsp;&lt;/P&gt;&lt;P&gt;---&amp;gt; &lt;STRONG&gt;Program02:&lt;/STRONG&gt; Treat some variables and create another variables in the database0_2, from database0_1.&lt;/P&gt;&lt;P&gt;---&amp;gt; Export database0_2 as step in project.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create some macro variables that reflect the time spent, so I can send those numbers by email during the project&amp;nbsp; while it is running. This is what I am doing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At begining of Program01:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;%macro get_start();
	%global hr_start;
	%let hr_start= %sysfunc(datetime(), DATETIME18.);&lt;BR /&gt;    /*Print in log the datetime*/
	%put HOUR_START &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;amp;hr_start;
	%let hr_start= %sysfunc(datetime(), TIMEW.);
%mend;

%get_start;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Then, at the end of Program02 I created the code above:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;%macro get_end();
	%global hr_end;
	%let hr_end = %sysfunc(datetime(), DATETIME18.);
	%put HOUR_END &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;amp;hr_end;
	%let hr_end = %sysfunc(datetime(), TIMEW.);
	%let time_elapsed = %sysfunc(intck(seconds,&amp;amp;hr_start,&amp;amp;hr_end));
	%put TIME ELAPSED &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  &amp;amp;time_elapsed SECONDS;
%mend;

%get_end;

/*SEND EMAIL*/
options emailsys=smtp;

filename msg email 
	to=("vitor@mymail.com.br")
	from=("vitor@mymail.com.br")
	subject = "database0_2 updated at &amp;amp;hr_end";

data _null_;
	file msg;
	put "BEGIN OF PROCESS: &amp;amp;hr_start";
	put "END OF PROCESS: &amp;amp;hr_end";
	put " ";
	put "database0_2 updated with approximate time elapsed of &amp;amp;time_elapsed SECONDS";
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;But in my email I receive the subject "&lt;STRONG&gt;database0_2 updated at 1954495693"&amp;nbsp;&lt;/STRONG&gt;and the message:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;BEGIN OF PROCESS: &amp;amp;hr_start&lt;/P&gt;&lt;P&gt;END OF PROCESS: 1954495693&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;database0_2 updated with approximate time elapsed of &amp;amp;time_elapsed SECONDS&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;What I have to change so I can receive my subject as&amp;nbsp;"&lt;STRONG&gt;database0_2 updated at 07DEC21:08:36:37"&amp;nbsp;&lt;/STRONG&gt; and my message as below?&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;BEGIN OF PROCESS: &lt;STRONG&gt;21:02:30:37&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;END OF PROCESS: &lt;STRONG&gt;21:08:36:37&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;database0_2 updated with approximate time elapsed of &lt;STRONG&gt;246&lt;/STRONG&gt; SECONDS&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Dec 2021 17:25:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Get-the-elapsed-time-running-some-steps-of-my-project-and-create/m-p/784575#M250401</guid>
      <dc:creator>azambvitor</dc:creator>
      <dc:date>2021-12-07T17:25:32Z</dc:date>
    </item>
    <item>
      <title>Re: Get the elapsed time running some steps of my project and create macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Get-the-elapsed-time-running-some-steps-of-my-project-and-create/m-p/784819#M250447</link>
      <description>&lt;P&gt;Something like this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At beginning of Program01:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=""&gt;%put HOUR_START &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; %sysfunc(datetime(), DATETIME20.);
%let hr_start= %sysfunc(datetime());&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Then, at the end of Program02:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=""&gt;%put HOUR_END &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  %sysfunc(datetime(), DATETIME20.);
%let hr_end = %sysfunc(datetime());
%let time_elapsed = %sysfunc(intck(seconds,&amp;amp;hr_start,&amp;amp;hr_end));
%put TIME ELAPSED &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  &amp;amp;time_elapsed SECONDS;

data _null_;
  file msg;&lt;BR /&gt;  retain HS &amp;amp;hr_start HE &amp;amp;hr_end;
  put "BEGIN OF PROCESS: " HS datetime20.;
  put "END OF PROCESS: " HE datetime20.;
  put " ";
  put "database0_2 updated in &amp;amp;time_elapsed seconds.";
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Dec 2021 05:41:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Get-the-elapsed-time-running-some-steps-of-my-project-and-create/m-p/784819#M250447</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2021-12-08T05:41:52Z</dc:date>
    </item>
  </channel>
</rss>

