Focal Point
how to convert a long (10) datetime field to short (8)

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

August 15, 2007, 04:56 PM
mike
how to convert a long (10) datetime field to short (8)
I have a db datetime field that is in the long format; eg., 2003/09/24 15:00:33.201811

How can I convert it to shorter; eg., 2003/09/24 15:00:33


wf 7.6.11
unix aix
active reports, HTML, Excel, Text and PDF formats
August 15, 2007, 05:01 PM
FrankDutch
If this date has an internal format of A25, you first can convert it to
NEWDATE/A19=EDIT(OLDDATE,'9999999999999999999$$$$$$$$');
then the milliseconds are gone.




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

August 15, 2007, 05:45 PM
mike
But the old date field is a date timestamp field; USAGE=HYYMDm, ACTUAL=HYYMDm. EDIT() would not work. You get an error:
INCORRECT USE OF DATE-TIME FIELD OR CONSTANT


wf 7.6.11
unix aix
active reports, HTML, Excel, Text and PDF formats
August 15, 2007, 06:37 PM
Darin Lee
Check out the HDATE function in Help.


Regards,

Darin



In FOCUS since 1991
WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex
Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex
WF Client: 77 on Linux w/Tomcat
August 15, 2007, 06:47 PM
mike
HDATE converts datetime to DATE. I'll lose the time portion.


wf 7.6.11
unix aix
active reports, HTML, Excel, Text and PDF formats
August 15, 2007, 07:19 PM
Tom Flynn
quote:

How can I convert it to shorter; eg., 2003/09/24 15:00:33


DATE_X/A20 = HCNVRT(DATE_COLUMN,'(HYYMDs)', 26, 'A20');

EDIT: Had the incoming date length incorrect; Check out the documentation...

This message has been edited. Last edited by: Tom Flynn,


Tom Flynn
WebFOCUS 8.1.05 - PROD/QA
DB2 - AS400 - Mainframe
August 15, 2007, 08:56 PM
Piipster
Try something a bit simpler.

NEWDATE/HYYMDS = db_field;


I was able to do the following on a NORTHWIND table in SQL server on R714, so I expect the reverse would work.
TABLE FILE ORDERS
PRINT ORDERDATE
COMPUTE NEWDT/HYYMDm = ORDERDATE;
IF RECORDLIMIT EQ 1
END
 



ttfn, kp


Access to most releases from R52x, on multiple platforms.
August 15, 2007, 09:13 PM
Tom Flynn
Pipster,

OOOPPPSSS!!! My Bad...

HYYMDm not HYYMDs

MILLISECONDS - m, not SECONDS - s, THANKS!!!

I hope Mike let's us know if that's an efficient solution; I like your idea, as well...

This message has been edited. Last edited by: Tom Flynn,


Tom Flynn
WebFOCUS 8.1.05 - PROD/QA
DB2 - AS400 - Mainframe
August 16, 2007, 12:17 PM
mike
thanks to both Piipster & Tom. I do like Piipster's solution better. It is easier and simpler. As a matter of fact, I still have to play with Tom's suggestion to make it work, which I am sure it will. Reason being that HCNVRT will return blank if the specified length is smaller than needed, which means I have to specific a longer length than I want to get the return value and then use EDIT or some other function to truncate the unwanted portion.

Hope I did not confuse you guys. Thanks!


wf 7.6.11
unix aix
active reports, HTML, Excel, Text and PDF formats