%GLOBAL SDATE EDATE STHR ENHR STMIN ENMIN AM PM; OPTIONS MLOGIC MPRINT SYMBOLGEN; PROC SQL; CREATE TABLE UPDTE AS SELECT SDATE, (CASE WHEN("&AM." IS NULL OR "&AM." = "AM" ) THEN INPUT(CATX(':', (CASE WHEN("&SDATE." IS NULL THEN '01/01/2018' ELSE "&SDATE." END), (CASE WHEN "&STHR." IS NULL THEN '00' ELSE "&STHR." END), (CASE WHEN "&STMIN." IS NULL THEN '00' ELSE "&STMIN." END), (CASE WHEN "&STMIN." IS NULL THEN '00' ELSE "&STMIN." END),"00"),ANYDTDTM.) ELSE INPUT(CATX':' , (CASE WHEN &SDATE. IS NULL THEN '01/01/2018' ELSE &SDATE. END), (CASE WHEN "&STHR." IS NULL THEN 00 ELSE INPUT("&STHR."),8.)+12 END) , (CASE WHEN "&STMIN." IS NULL THEN '00' ELSE "&STMIN." END),"00"),ANYDTDTM.) END) AS STARTTIME FORMAT = DATETIME23., , (CASE WHEN ("&AM." IS NULL OR "&AM."= "AM") THEN INPUT(CATX(':', (CASE WHEN "&EDATE." IS NULL THEN PUT(TODAY(),MMDDYY10.) ELSE "&EDATE." END) , (CASE WHEN "&ENHR." IS NULL THEN '23' ELSE "&ENHR." END) , (CASE WHEN "&ENMIN." IS NULL THEN '59' ELSE "&ENMIN" END) ,"00"),ANYDTDTM.) END) AS ENDDTETIME FORMAT = DATETIME23, ,DISPLAYNAME, LOGIN_TME, LOGOFF, SDATE, EDATE, LOGOFF_CLOCK, LOGIN_CLOCK FROM TEST.UPDATES QUIT; DATA UPDTE1; SET UPDTE; DO I = 0 TO INTCK('HOUR','STARTTIME' ,ENDDTETIME); HOURS=INTNX('HOUR',STARTTIME,1,'B'); OUTPUT; END; IF LOGIN-TME GE HOURS AND LOGOFF LE HOURS; FORMAT HOURS DATETIME23. ; RUN; /**/ =