<?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 macro datetime variable error in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186886#M35384</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've PROCESSED_DTTM variable(informat=datetime19., format=datetime19.) in TEST dataset &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro delbkp;&lt;/P&gt;&lt;P&gt;Proc sql;&lt;/P&gt;&lt;P&gt;select count(distinct processed_dttm), min(processed_dttm)&amp;nbsp; &lt;/P&gt;&lt;P&gt; into :cnt_dttm, :min_dttm&lt;/P&gt;&lt;P&gt; from TEST&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;%put &amp;amp;cnt_dttm &amp;amp;min_dttm ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%IF &amp;amp;cnt_dttm &amp;gt; 3 %then %do;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;delete * from TEST&lt;/P&gt;&lt;P&gt;where processed_dttm="&amp;amp;min_dttm"dt&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend; %delbkp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: Invalid date/time/datetime constant "1.7176E9"dt.&lt;/P&gt;&lt;P&gt;MPRINT(DELBKP):&amp;nbsp;&amp;nbsp; delete * from TEST where processed_dttm="1.7176E9"dt ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can u suggest me to throw out this error&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Jun 2014 17:12:52 GMT</pubDate>
    <dc:creator>sunilreddy</dc:creator>
    <dc:date>2014-06-05T17:12:52Z</dc:date>
    <item>
      <title>macro datetime variable error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186886#M35384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've PROCESSED_DTTM variable(informat=datetime19., format=datetime19.) in TEST dataset &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro delbkp;&lt;/P&gt;&lt;P&gt;Proc sql;&lt;/P&gt;&lt;P&gt;select count(distinct processed_dttm), min(processed_dttm)&amp;nbsp; &lt;/P&gt;&lt;P&gt; into :cnt_dttm, :min_dttm&lt;/P&gt;&lt;P&gt; from TEST&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;%put &amp;amp;cnt_dttm &amp;amp;min_dttm ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%IF &amp;amp;cnt_dttm &amp;gt; 3 %then %do;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;delete * from TEST&lt;/P&gt;&lt;P&gt;where processed_dttm="&amp;amp;min_dttm"dt&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend; %delbkp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: Invalid date/time/datetime constant "1.7176E9"dt.&lt;/P&gt;&lt;P&gt;MPRINT(DELBKP):&amp;nbsp;&amp;nbsp; delete * from TEST where processed_dttm="1.7176E9"dt ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can u suggest me to throw out this error&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2014 17:12:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186886#M35384</guid>
      <dc:creator>sunilreddy</dc:creator>
      <dc:date>2014-06-05T17:12:52Z</dc:date>
    </item>
    <item>
      <title>Re: macro datetime variable error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186887#M35385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sas doesn't store your informat or your format to a macro variable.. So when you call &amp;amp;min_dttm you should notice a very long number and not any kind of date format.&lt;/P&gt;&lt;P&gt;the Dt operator is when you have a date string, something like "10Mar2009:00:00:00.000"dt. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;simply remove the quote and the dt, and your process should work.&lt;/P&gt;&lt;P&gt;aka have&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;delete * from TEST&lt;/P&gt;&lt;P&gt;where processed_dttm=&amp;amp;min_dttm&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2014 17:44:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186887#M35385</guid>
      <dc:creator>Anotherdream</dc:creator>
      <dc:date>2014-06-05T17:44:04Z</dc:date>
    </item>
    <item>
      <title>Re: macro datetime variable error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186888#M35386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've tried it earlier, its not throwing any syntax error, but still records are not deleting from&amp;nbsp; TEST table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;15&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;Proc sql;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;select count(distinct processed_dttm), min(processed_dttm)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;into :cnt_dttm, :min_dttm&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;from TEST&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;Quit;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;17.72 seconds&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;0.14 seconds&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;/P&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;%put &amp;amp;cnt_dttm &amp;amp;min_dttm ;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;STRONG&gt;2 1.7176E9&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;23&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;24&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;Options mprint mlogic;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;%macro delbkp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;26&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;27&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;%IF &amp;amp;cnt_dttm &amp;gt; 0 %then %do;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;proc sql;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;delete * from TEST&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;where processed_dttm=&amp;amp;min_dttm&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;32&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;33&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;Quit;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;34&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;%end;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;35&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;%mend; %delbkp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;MLOGIC(DELBKP):&amp;nbsp; Beginning execution.&lt;/P&gt;&lt;P&gt;MLOGIC(DELBKP):&amp;nbsp; %IF condition &amp;amp;cnt_dttm &amp;gt; 0 is TRUE&lt;/P&gt;&lt;P&gt;MPRINT(DELBKP):&amp;nbsp;&amp;nbsp; proc sql;&lt;/P&gt;&lt;P&gt;MPRINT(DELBKP):&amp;nbsp;&amp;nbsp; delete * from TEST where processed_dttm=1.7176E9 ;&lt;/P&gt;&lt;P&gt;NOTE: No rows were deleted from TEST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MPRINT(DELBKP):&amp;nbsp;&amp;nbsp; Quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2014 19:30:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186888#M35386</guid>
      <dc:creator>sunilreddy</dc:creator>
      <dc:date>2014-06-05T19:30:02Z</dc:date>
    </item>
    <item>
      <title>Re: macro datetime variable error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186889#M35387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The reason, I doubt, is because SAS store inaccurate number of datetime in macro variable. From example below, you could see &amp;amp;min resolve to 1.6098E9, put it into datetime format, it become to: 04JAN2011:22:40:00, not&amp;nbsp; 05Jan2011:11:34:11, so you could not delete row.&amp;nbsp; Do I miss thing here?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input date datetime19.;&lt;BR /&gt;format date datetime19.;&lt;BR /&gt;cards;&lt;BR /&gt;01Jul2013:05:22:14&lt;BR /&gt;23Aug2012:06:11:12&lt;BR /&gt;05Jan2011:11:34:11&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;proc sql;&lt;BR /&gt; select count(distinct date),min(date)into:num,:min from have; quit;&lt;BR /&gt; %put &amp;amp;num &amp;amp;min %sysfunc(putn(&amp;amp;min,datetime19.));&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jun 2014 13:50:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186889#M35387</guid>
      <dc:creator>slchen</dc:creator>
      <dc:date>2014-06-06T13:50:07Z</dc:date>
    </item>
    <item>
      <title>Re: macro datetime variable error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186890#M35388</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SAS is using BEST12. to format the result of the MIN() aggregate function.&amp;nbsp; Tell it to use a different format.&lt;/P&gt;&lt;P&gt;You could use F14. (that is long enough to hold the current time) or F15. to leave a little room for future times.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;select count(distinct processed_dttm)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , min(processed_dttm) format=F15.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; into :cnt_dttm&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , :min_dttm&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; from TEST&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;where processed_dttm=&amp;amp;min_dttm&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier; background-color: #ffffff;"&gt;...&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P&gt;Or you could use DATETIME19. and then use "&amp;amp;min_dttm"dt to reference the result as a datetime literal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;select count(distinct processed_dttm)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , min(processed_dttm) format=datetime19.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; into :cnt_dttm&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , :min_dttm&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; from TEST&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;where processed_dttm="&amp;amp;min_dttm"dt&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jun 2014 14:57:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-datetime-variable-error/m-p/186890#M35388</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2014-06-06T14:57:11Z</dc:date>
    </item>
  </channel>
</rss>

