Focal Point
[SOLVED] Convert alpha to use HDIFF

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/90910134

March 13, 2009, 03:00 PM
Tomsweb
[SOLVED] Convert alpha to use HDIFF
I have a 2 time fields
tm_fd1 usage=p7 actual=p4
tm_fd2 usage=p13.4 actual=p7

So far I have converted these fields from Packed format to ALPHA via:
ADT1/A7 = EDIT(ADM_TIME);
ADT2/A8 = EDIT(ADT1,'$99:99:99');
DST1/A13 = EDIT(TIME_OF_DISCHARGE);
DST2/A8 = EDIT(DST1, '$$$$$$$99:99:99');

I have determined that I need to use HDIFF to
get the diff btwn these times in minutes.

Any ideas on how I could reformat these fields to be used in HDIFF?

Thanks! Sweating

This message has been edited. Last edited by: Kerry,


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36
March 13, 2009, 03:28 PM
susannah
Tom,
USING FUNCTIONS manual
page 246,then 245
you want to change the date to a smartdate first
then from a smartdate use HDTTM to make it a datetime (page 246)
then use your HDIFF function (page 245)
-s




In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
March 13, 2009, 03:36 PM
Tomsweb
So far, I have created a time/date stamp field
and tried the hdiff on these new flds.

DEFINE FILE T2ENCNTR
EDIT_ADMT_DATE/A11 = EDIT(ADMIT_DATE);
NEW_ADMT_DATE/A8 = EDIT(EDIT_ADMT_DATE,'$99999999');
DATE_ADMT_DATE/A8YYMD = NEW_ADMT_DATE;
ADM_DATE/YYMD = DATE_ADMT_DATE;
-*
ADTIME1/A7 = EDIT(ADMIT_TIME);
ADTIME2/A8 = EDIT(ADTIME1,'$99:99:99');
XADM_TM/A19 = EDIT(NEW_ADMT_DATE,'9999/99/99') |''| ADTIME2;
-**
EDIT_DSCH_DATE/A11 = EDIT(DISCHARGE_DATE);
NEW_DSCH_DATE/A8 = EDIT(EDIT_DSCH_DATE,'$99999999');
DATE_DIS_DATE/A8YYMD = NEW_DSCH_DATE;
DSCH_DATE/YYMD = DATE_DIS_DATE;
-*
DSTIME1/A13 = EDIT(TIME_OF_DISCHARGE);
DSTIME2/A8 = EDIT(DSTIME1, '$$$$$$$99:99:99');
XDSH_TM/A19 = EDIT(NEW_DSCH_DATE,'9999/99/99') |''| DSTIME2;
-*
-* Calculate Time Diff from Admit to Discharge
TIME_MINUTES/I8 = HDIFF(XDSH_TM,XADM_TM,'MINUTE','D12.2');
END


I have received this error:
(FOC36355) INVALID TYPE OF ARGUMENT #2 FOR USER FUNCTION HDIFF
BYPASSING TO END OF COMMAND

Now, I will goto "USING FUNCTIONS" in manual
and get this fixed. Cool

muchos gracias


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36
March 13, 2009, 03:54 PM
FrankDutch
quote:
TIME_MINUTES/I8 = HDIFF(XDSH_TM,XADM_TM,'MINUTE','D12.2');


Tom

change the 'D12.2' to 'TIME_MINUTES'


and buy the book "almost 1001" etc it will help you a lot in calculating with dates and times.




Frank

prod: WF 7.6.10 platform Windows,
databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7
test: WF 7.6.10 on the same platform and databases,IE7

March 13, 2009, 04:33 PM
Tomsweb
Thanks Frank,

I did as you suggested,
TIME_MINUTES/I8 = HDIFF(XDSH_TM,XADM_TM,'MINUTE','TIME_MINUTES');
and I got this error.

0 ERROR AT OR NEAR LINE 25 IN PROCEDURE ADHOCRQ FOCEXEC *
(FOC36355) INVALID TYPE OF ARGUMENT #4 FOR USER FUNCTION HDIFF
BYPASSING TO END OF COMMAND
0 ERROR AT OR NEAR LINE 38 IN PROCEDURE ADHOCRQ FOCEXEC *
(FOC003) THE FIELDNAME IS NOT RECOGNIZED: TIME_MINUTES
BYPASSING TO END OF COMMAND
(FOC009) INCOMPLETE REQUEST STATEMENT

I am thinking maybe I need to change
XDSH_TM and XADM_TMfrom ALPHA to a
different format to make this work.
???


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36
March 13, 2009, 05:23 PM
Tomsweb
Problem resolved!

YADM_TM/HYYMDS = HINPUT(19,XADM_TM,17,YADM_TM);
YDSH_TM/HYYMDS = HINPUT(19,XDSH_TM,17,YADM_TM);
and finally,

TIME_MINUTES/I8 = HDIFF(YDSH_TM,YADM_TM,'MINUTE','D12.2');

Thanks All! Wink


Tomsweb
WebFOCUS 8.1.05M, 8.2.x
APP Studio, Developer Studio, InfoAssist, Dashboards, charts & reports
Apache Tomcat/8.0.36