<?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 Todays date in Proc sql in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Todays-date-in-Proc-sql/m-p/48410#M13093</link>
    <description>I'm working on a proc sql statement and I only want todays date to return and it's not working right.  Below is the code:&lt;BR /&gt;
&lt;BR /&gt;
LIBNAME LEAVE OLEDB  PROPERTIES=( "Initial Catalog"=Workflow)  DATASOURCE="Argent\db1"  &lt;BR /&gt;
		PROMPT=NO  PROVIDER=SQLOLEDB.1  USER=sasadmin  PASSWORD="{sasenc}B089914C1F024AB03FF78DBE40F4421B" ;&lt;BR /&gt;
&lt;BR /&gt;
%let today = %sysfunc(today(),YYMMDD10.);&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
FILENAME D_FILE "d:\temp\nick_tmp\leavedetail%sysfunc(date(),mmddyy6.).txt";&lt;BR /&gt;
FILENAME H_FILE "d:\temp\nick_tmp\leavedetail.txt";&lt;BR /&gt;
&lt;BR /&gt;
proc sql;&lt;BR /&gt;
&lt;BR /&gt;
create table WORK.LeaveData as&lt;BR /&gt;
	SELECT   	reverse(substr(reverse('0000000' || trim(lr.TartanID)),1,7)) as TartanID, &lt;BR /&gt;
				datepart(lr.TDate) as TDate format=YYMMDD10.,  &lt;BR /&gt;
				reverse(substr(reverse('0000000' || trim(lr.submittedTo)),1,7)) as SubmittedTo, &lt;BR /&gt;
				lr.Classification, &lt;BR /&gt;
				lr.IsFMLA, &lt;BR /&gt;
				lr.IsRevised, &lt;BR /&gt;
				datepart(ld.SDate) as SDate format=YYMMDD10., &lt;BR /&gt;
				datepart(ld.RDate) as RDate format=YYMMDD10.,  &lt;BR /&gt;
				datepart(wfi.exitDate) as ExitDate format=YYMMDD10.,&lt;BR /&gt;
				ld.Hours format=10.2,&lt;BR /&gt;
				ld.Comment, &lt;BR /&gt;
				ld.LeaveType &lt;BR /&gt;
	FROM         	LEAVE.leaveRequest as lr&lt;BR /&gt;
	INNER JOIN 		LEAVE.leaveRequestDetail as ld&lt;BR /&gt;
		ON ld.formid = lr.id&lt;BR /&gt;
	INNER JOIN 		LEAVE.workflowinfo as wfi&lt;BR /&gt;
		ON wfi.forminfoid = lr.id&lt;BR /&gt;
		AND wfi.statusid = '3'&lt;BR /&gt;
&lt;BR /&gt;
	WHERE wfi.exitdate = &amp;amp;today   &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;</description>
    <pubDate>Tue, 12 Apr 2011 13:49:08 GMT</pubDate>
    <dc:creator>nickb</dc:creator>
    <dc:date>2011-04-12T13:49:08Z</dc:date>
    <item>
      <title>Todays date in Proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Todays-date-in-Proc-sql/m-p/48410#M13093</link>
      <description>I'm working on a proc sql statement and I only want todays date to return and it's not working right.  Below is the code:&lt;BR /&gt;
&lt;BR /&gt;
LIBNAME LEAVE OLEDB  PROPERTIES=( "Initial Catalog"=Workflow)  DATASOURCE="Argent\db1"  &lt;BR /&gt;
		PROMPT=NO  PROVIDER=SQLOLEDB.1  USER=sasadmin  PASSWORD="{sasenc}B089914C1F024AB03FF78DBE40F4421B" ;&lt;BR /&gt;
&lt;BR /&gt;
%let today = %sysfunc(today(),YYMMDD10.);&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
FILENAME D_FILE "d:\temp\nick_tmp\leavedetail%sysfunc(date(),mmddyy6.).txt";&lt;BR /&gt;
FILENAME H_FILE "d:\temp\nick_tmp\leavedetail.txt";&lt;BR /&gt;
&lt;BR /&gt;
proc sql;&lt;BR /&gt;
&lt;BR /&gt;
create table WORK.LeaveData as&lt;BR /&gt;
	SELECT   	reverse(substr(reverse('0000000' || trim(lr.TartanID)),1,7)) as TartanID, &lt;BR /&gt;
				datepart(lr.TDate) as TDate format=YYMMDD10.,  &lt;BR /&gt;
				reverse(substr(reverse('0000000' || trim(lr.submittedTo)),1,7)) as SubmittedTo, &lt;BR /&gt;
				lr.Classification, &lt;BR /&gt;
				lr.IsFMLA, &lt;BR /&gt;
				lr.IsRevised, &lt;BR /&gt;
				datepart(ld.SDate) as SDate format=YYMMDD10., &lt;BR /&gt;
				datepart(ld.RDate) as RDate format=YYMMDD10.,  &lt;BR /&gt;
				datepart(wfi.exitDate) as ExitDate format=YYMMDD10.,&lt;BR /&gt;
				ld.Hours format=10.2,&lt;BR /&gt;
				ld.Comment, &lt;BR /&gt;
				ld.LeaveType &lt;BR /&gt;
	FROM         	LEAVE.leaveRequest as lr&lt;BR /&gt;
	INNER JOIN 		LEAVE.leaveRequestDetail as ld&lt;BR /&gt;
		ON ld.formid = lr.id&lt;BR /&gt;
	INNER JOIN 		LEAVE.workflowinfo as wfi&lt;BR /&gt;
		ON wfi.forminfoid = lr.id&lt;BR /&gt;
		AND wfi.statusid = '3'&lt;BR /&gt;
&lt;BR /&gt;
	WHERE wfi.exitdate = &amp;amp;today   &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;</description>
      <pubDate>Tue, 12 Apr 2011 13:49:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Todays-date-in-Proc-sql/m-p/48410#M13093</guid>
      <dc:creator>nickb</dc:creator>
      <dc:date>2011-04-12T13:49:08Z</dc:date>
    </item>
    <item>
      <title>Re: Todays date in Proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Todays-date-in-Proc-sql/m-p/48411#M13094</link>
      <description>I think the variable in the proc sql is being parsed as&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
WHERE wfi.exitdate = 2011-04-12&lt;BR /&gt;
&lt;BR /&gt;
which is not a valid date.  You could use&lt;BR /&gt;
&lt;BR /&gt;
WHERE wfi.exitdate = "&amp;amp;today"d&lt;BR /&gt;
&lt;BR /&gt;
or&lt;BR /&gt;
&lt;BR /&gt;
WHERE wfi.exitdate = date()&lt;BR /&gt;
&lt;BR /&gt;
or &lt;BR /&gt;
&lt;BR /&gt;
WHERE datepart(wfi.exitdate) = date()&lt;BR /&gt;
&lt;BR /&gt;
if it is a datetime variable.</description>
      <pubDate>Tue, 12 Apr 2011 14:30:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Todays-date-in-Proc-sql/m-p/48411#M13094</guid>
      <dc:creator>DBailey</dc:creator>
      <dc:date>2011-04-12T14:30:55Z</dc:date>
    </item>
  </channel>
</rss>

