<?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: insert date macro variable into teradata in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332662#M74899</link>
    <description>Thanks but it does not: ERROR: Teradata execute: Syntax error: Data Type "datepart" does not match a Defined Type name.</description>
    <pubDate>Tue, 14 Feb 2017 15:35:55 GMT</pubDate>
    <dc:creator>csetzkorn</dc:creator>
    <dc:date>2017-02-14T15:35:55Z</dc:date>
    <item>
      <title>insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332637#M74891</link>
      <description>&lt;P&gt;I have a column defined as follows in a TeraData table:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;RunDay DATE FORMAT 'YYYY-MM-DD'&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I try to insert one row into this table as follows given a macro variable RunDay:&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;PRE&gt;&lt;CODE class=" language-sas"&gt;%let RunDay = %sysfunc(datetime());

proc sql noerrorstop;
	connect to teradata(User=&amp;amp;user. password=&amp;amp;passwd. mode=teradata);
	Execute(
		INSERT INTO SomeGreatTable
		(
			RunDay
		)
		VALUES 
		(
			input("&amp;amp;RunDay.",YYMMDD.)
		);
	);
)By Teradata;
quit;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Any ideas why this does not work? 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;</description>
      <pubDate>Tue, 14 Feb 2017 15:50:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332637#M74891</guid>
      <dc:creator>csetzkorn</dc:creator>
      <dc:date>2017-02-14T15:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332647#M74893</link>
      <description>&lt;P&gt;What does not work?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Look at what you are doing:&lt;/P&gt;
&lt;P&gt;%let RunDay = = %sysfunc(datetime());&lt;BR /&gt;input("&amp;amp;RunDay.",YYMMDD.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now de-refeference the macro variable:&lt;/P&gt;
&lt;P&gt;input(" = %sysfunc(datetime())",YYMMDD.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does that look correct to you? &amp;nbsp;No, even if you fix the double = sign, the %sysfunc() will return a number - which is how SAS stores dates/times/datetimes. &amp;nbsp;This is basic SAS stuff which you should know before trying to do macros.&lt;/P&gt;
&lt;P&gt;Something like:&lt;/P&gt;
&lt;P&gt;%let RunDay=%sysfunc(datetime());&lt;/P&gt;
&lt;P&gt;put(datepart("&amp;amp;RunDay."),YYMMDD.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Should work, however not tested.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 15:22:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332647#M74893</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-02-14T15:22:28Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332660#M74898</link>
      <description>&lt;P&gt;Slight modification:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;put(datepart(&amp;amp;RunDay.),YYMMDD.)&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;as &amp;amp;RunDay will be (and should be) a numeric value.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 15:34:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332660#M74898</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-02-14T15:34:22Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332662#M74899</link>
      <description>Thanks but it does not: ERROR: Teradata execute: Syntax error: Data Type "datepart" does not match a Defined Type name.</description>
      <pubDate>Tue, 14 Feb 2017 15:35:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332662#M74899</guid>
      <dc:creator>csetzkorn</dc:creator>
      <dc:date>2017-02-14T15:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332666#M74900</link>
      <description>&lt;P&gt;If you are pushing SQL code into Teradata to execute it needs to be valid Teradata SQL code. That means you can't use the INPUT() function. &amp;nbsp;Even if you could your macro variable was not formatted in the form that your INPUT statement was trying to read. &amp;nbsp;Try making your macro variable have the content '2017-02-14' instead. Note to get a DATE value you want to use the DATE() function and not the DATETIME() function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let RunDay = %unquote(%bquote('%sysfunc(date(),yymmddd10)'));

proc sql noerrorstop;
	connect to teradata(User=&amp;amp;user. password=&amp;amp;passwd. mode=teradata);
	Execute(
		INSERT INTO SomeGreatTable
		(
			RunDay
		)
		VALUES 
		(
			&amp;amp;RunDay 
		);
	);
)By Teradata;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:16:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332666#M74900</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-02-14T16:16:40Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332674#M74904</link>
      <description>Thanks Tom. I am getting: ERROR: Teradata execute: A character string failed conversion to a numeric value.&lt;BR /&gt;</description>
      <pubDate>Tue, 14 Feb 2017 15:55:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332674#M74904</guid>
      <dc:creator>csetzkorn</dc:creator>
      <dc:date>2017-02-14T15:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332684#M74908</link>
      <description>&lt;P&gt;Probably because the macro variable was generated using the DATETIME() function instead of the DATE() function. That would probably cause the YYMMDDD10. format to generate *********************. &amp;nbsp;Let me update my answer above to correct that.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:15:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332684#M74908</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-02-14T16:15:19Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332687#M74911</link>
      <description>&lt;P&gt;It appears that this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let RunDay = 2016-10-01;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and this works:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;CAST(%bquote('&amp;amp;RunDay.') AS DATE FORMAT 'YYYY-MM-DD')&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Last hurdle is to inialise the macro variable with the current run day (rather than hardcoding it).&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:20:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332687#M74911</guid>
      <dc:creator>csetzkorn</dc:creator>
      <dc:date>2017-02-14T16:20:14Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332703#M74920</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;you probably meant:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token macroname"&gt;%let&lt;/SPAN&gt; RunDay &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token macrostatement"&gt;%unquote&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%bquote&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'%sysfunc(&lt;U&gt;&lt;STRONG&gt;today&lt;/STRONG&gt;&lt;/U&gt;(),yymmddd10)'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;or maybe you need take of the quotes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token macroname"&gt;%let&lt;/SPAN&gt; RunDay &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token macrostatement"&gt;%unquote&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%bquote&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;%sysfunc(&lt;U&gt;&lt;STRONG&gt;today&lt;/STRONG&gt;&lt;/U&gt;(),yymmddd10)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:47:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332703#M74920</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-02-14T16:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: insert date macro variable into teradata</title>
      <link>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332704#M74921</link>
      <description>&lt;P&gt;Yes. The original request used DATETIME() instead of DATE(). &amp;nbsp;I updated my post to fix that.&lt;/P&gt;
&lt;P&gt;Note the TODAY() is just an alias for the DATE() function.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:46:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/insert-date-macro-variable-into-teradata/m-p/332704#M74921</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-02-14T16:46:35Z</dc:date>
    </item>
  </channel>
</rss>

