SAS Enterprise Guide

Desktop productivity for business analysts and programmers
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
NareshAbburi
Calcite | Level 5

Hi,

I'm trying to find two time variable difference using below query. but it is throwing me the following error. Can someone let me know what mistake I did.

Please help me.

QUERY:

PROC SQL;

CREATE TABLE WIS.TEMP7 AS

SELECT INTCK('MINUTE', 'MAX_TIME'T, 'MIN_TIME'T) FROM (

SELECT MAX(TIME) AS MAX_TIME, MIN(TIME) AS MIN_TIME,FILEID, DT FROM MTG.LOGFILE_WIS_FINAL_UI5_FINAL GROUP BY FILEID, DT);

Result:

5         PROC SQL;

16         CREATE TABLE WIS.TEMP7 AS

17         SELECT INTCK('MINUTE', 'MAX_TIME'T, 'MIN_TIME'T) FROM (

ERROR: Invalid date/time/datetime constant 'MAX_TIME'T.

ERROR: Invalid date/time/datetime constant 'MIN_TIME'T.

18         SELECT MAX(TIME) AS MAX_TIME, MIN(TIME) AS MIN_TIME,FILEID, DT FROM

18       ! MTG.LOGFILE_WIS_FINAL_UI5_FINAL GROUP BY FILEID, DT);

but the table is getting created using second query.

time.PNG

1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21

Column TIME must be CHARACTER, not NUMERIC. Try converting it with

SELECT MAX(INPUT(TIME, TIME8.)) AS MAX_TIME, MIN(INPUT(TIME, TIME8.)) AS MIN_TIME


then, if you want a positive number of minutes, you should use


INTCK('MINUTE', MIN_TIME, MAX_TIME)


PG

PG

View solution in original post

6 REPLIES 6
DBailey
Lapis Lazuli | Level 10

You would use

SELECT INTCK('MINUTE', MAX_TIME, MIN_TIME)

NareshAbburi
Calcite | Level 5

Then I'm getting this error;

ERROR: Function INTCK requires a numeric expression as argument 2.

ERROR: Function INTCK requires a numeric expression as argument 3.

not sure, if i need to convert it.

NareshAbburi
Calcite | Level 5

could someone help with this issue.....?

PGStats
Opal | Level 21

Post the log, including new code and error(s). - PG

PG
NareshAbburi
Calcite | Level 5

below are the two queries that I've tried:

PROC SQL;

CREATE TABLE WIS.TEMP7 AS

SELECT INTCK('MINUTE', MAX_TIME, MIN_TIME) FROM (

SELECT MAX(TIME) AS MAX_TIME, MIN(TIME) AS MIN_TIME,FILEID, DT FROM MTG.LOGFILE_WIS_FINAL_UI5_FINAL GROUP BY FILEID, DT);

14         GOPTIONS ACCESSIBLE;

15         PROC SQL;

16         CREATE TABLE WIS.TEMP7 AS

17         SELECT INTCK('MINUTE', MAX_TIME, MIN_TIME) FROM (

18         SELECT MAX(TIME) AS MAX_TIME, MIN(TIME) AS MIN_TIME,FILEID, DT FROM

18       ! MTG.LOGFILE_WIS_FINAL_UI5_FINAL GROUP BY FILEID, DT);

ERROR: Function INTCK requires a numeric expression as argument 2.

ERROR: Function INTCK requires a numeric expression as argument 3.

NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.

19        

20         GOPTIONS NOACCESSIBLE;

21         %LET _CLIENTTASKLABEL=;

22         %LET _CLIENTPROJECTPATH=;

23         %LET _CLIENTPROJECTNAME=;

24         %LET _SASPROGRAMFILE=;

25        

26         ;*';*";*/;quit;

NOTE: The SAS System stopped processing this step because of errors.

NOTE: PROCEDURE SQL used (Total process time):

      real time           0.00 seconds

      cpu time            0.00 seconds

     

26       !                run;

27         ODS _ALL_ CLOSE;

QUERY:

PROC SQL;

CREATE TABLE WIS.TEMP7 AS

SELECT INTCK('MINUTE', 'MAX_TIME'T, 'MIN_TIME'T) FROM (

SELECT MAX(TIME) AS MAX_TIME, MIN(TIME) AS MIN_TIME,FILEID, DT FROM MTG.LOGFILE_WIS_FINAL_UI5_FINAL GROUP BY FILEID, DT);

Result:

5         PROC SQL;

16         CREATE TABLE WIS.TEMP7 AS

17         SELECT INTCK('MINUTE', 'MAX_TIME'T, 'MIN_TIME'T) FROM (

ERROR: Invalid date/time/datetime constant 'MAX_TIME'T.

ERROR: Invalid date/time/datetime constant 'MIN_TIME'T.

18         SELECT MAX(TIME) AS MAX_TIME, MIN(TIME) AS MIN_TIME,FILEID, DT FROM

18       ! MTG.LOGFILE_WIS_FINAL_UI5_FINAL GROUP BY FILEID, DT);

PGStats
Opal | Level 21

Column TIME must be CHARACTER, not NUMERIC. Try converting it with

SELECT MAX(INPUT(TIME, TIME8.)) AS MAX_TIME, MIN(INPUT(TIME, TIME8.)) AS MIN_TIME


then, if you want a positive number of minutes, you should use


INTCK('MINUTE', MIN_TIME, MAX_TIME)


PG

PG

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 6 replies
  • 3027 views
  • 0 likes
  • 3 in conversation