LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (November 2008, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Tue, 4 Nov 2008 03:15:01 -0800
Reply-To:     alexander.konn@GMAIL.COM
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         alexander.konn@GMAIL.COM
Organization: http://groups.google.com
Subject:      Re: systime in ODS
Comments: To: sas-l@uga.edu
Content-Type: text/plain; charset=ISO-8859-1

On Nov 4, 8:02 am, "Virtual SAS Users Group: Free Online Events for SAS Users" <sfbay0...@aol.com> wrote: > Copy and paste the code below in to your program editor and see if it > gives you what you want. In my example I am using the value of the > DATETIME() function to find the SAS datetime value immediately before > running my reports. > > I think that is better than using the value of the &systime macro > symbol table variable, as %systime is assigned once when you start > your SAS session and does not change during it. > > My approach takes in to account any periods of time that elapse > between when you start your session and you generate your report. You > can cut/paste the DATA _NULL_ step and put it before each report you > need to create as a PDF, so you have the current date/time value in > the PDF file name. > > Also, I have given you two options. The "squished" value shows the > hours minutes and seconds "squished together" while the "spaces" value > shows them with an underscore symbol separating them. In my opinion, > the "spaces" value is easier to read. > > Hope this helps. > > * make up some data; > data madeup; > do i = 1 to 10; > x = uniform(999) * 10000; > y = uniform(777) * 12345; > output; > end; > run; > > * create macro variables with the current SAS datetime value > before running PROC PRINT and sending output to the PDF > destination; > data _null_; > * open sashelp.vmacro to see these values in the macro symbol table > after you have run this step; > call symputx('squished',compress(put(datetime(),datetime24.),':')); > call > symputx('spaces',tranwrd( put(datetime(),datetime24.) ,':','_')); ; > run; > > * print report with hours, minutes and seconds squished together in > the PDF file name; > options symbolgen; > ods listing close; > ods pdf file="C:\file_&squished..pdf" style=minimal; > proc print data=madeup; > title 'madeup data'; > run; > ods pdf close; > ods listing; > > * print report with hours, minute and seconds separated by spaces in > the PDF file name; > options symbolgen; > ods listing close; > ods pdf file="C:\file_&spaces..pdf" style=minimal; > proc print data=madeup; > title 'madeup data'; > run; > ods pdf close; > ods listing; > > Andrew Karp > Sierra Information Serviceshttp://www.SierraInformation.com > > On Nov 3, 10:01 pm, Aj <ajeetsubraman...@gmail.com> wrote: > > > Hi All > > > I am trying to output files with the ODS option with system time stamp > > on it : > > > ODS PDF FILE = "C:\test\RUN_&sysdate._&system..pdf"; > > PROC CONTENTS DATA = PERSON; > > RUN; > > ODS PDF CLOSE; > > > The results in a fle with a colon in between the date and time > > RUN_03NOV08_20:59.pdf > > > Can the extension be generated as RUN_03NOV08_2059.pdf WITHOUT the > > colon in between. > > > Have a great day ahead > > > Aj > >

Hi.

For sure, Andrew's suggestion is the way that I would prefer, too. Anyway, Aj, if you need a quick fix just use this to get rid of the colon: %let system = %sysfunc(COMPRESS(&system,':'));

Best, Alex


Back to: Top of message | Previous page | Main SAS-L page