Where are you "calculating" ("23JUL2017 :10:28"d-"21JUL2017 9:06"d)/(1440*60)? The actual issue is misunderstanding you Date, Time and DATETIME literals are expressed and stored.
If you run this code:
data junk;
y= "23JUL2017 :10:28"d;
z = "21JUL2017 9:06"d;
run;
You will see that y and z have values of 21023 and 21021, which are dates 23Jul2017 and 21Jul2017. The "time" portion is completely ignored. So dealing with the days difference and dividing isn't yielding minutes in either form. Dates are stored as DAYS since 1 Jan 1960, DATETIME is seconds from midnigh 1 Jan 1960, Time is seconds since midnight.
If you want to enter a datetime literal then the form is with a DT
data junk;
y= "23JUL2017:10:28"dt;
z = "21JUL2017:09:06"dt;
format y z datetime18.;
/* subtraction is in seconds*/
dif= (y-z)/60;
mindif = intck('minute',z,y);
run;
Which both yield 2962.
Notice that the order of values in intck will make a difference of positive or negative number of intervals.
... View more