Skip to main content
This forum is closed to new posts and responses. New discussions are now taking place in the IBM Developer Answers forum.
 
developerWorks
AIX and UNIX
Information Mgmt
Lotus
New to Lotus
Products
How to buy
Downloads
Live demos
Technical library
Training
Support
Forums & community
Events
Rational
Tivoli
WebSphere
Java™ technology
Linux
Open source
SOA and Web services
Web development
XML
My developerWorks
About dW
Submit content
Feedback



developerWorks  >  Lotus  >  Forums & community  >  Notes/Domino 6 and 7 Forum

Notes/Domino 6 and 7 Forum

developerWorks

  

PreviousPrevious NextNext

RE: How to calculate the creation date from the document unique id ??
Erik JA Vos 13.Apr.07 07:02 AM a Web browser
Domino Designer All Releases All Platforms


The date of creation is embedded in the 4 character long substring starting at postion 21 of the 32 character long hexadecimal docunid.
Calculate the decimal value of this 4 character hexadecimal substring.
This value represents the number of days after the date 1926-11-12 (to be interpreted as yyyy-mm-dd), so add this many days to the date 1926-11-12 to obtain the creation date.

The time of creation (on the found creation date) can be found in a similar way: calculate the decimal value of the 6 character long hexadecimal substring starting at position 27 of the docunid. The found value represents the number of centi-seconds after 0:00:00,00. This number of centi-seconds can finally be expressed in a more human readable form like hh:mm:ss.

In plpgsql (procedural language for writing functions in database PostgreSQL), I have implemented this in the function 'docunid_created' as:

CREATE OR REPLACE FUNCTION public.docunid_created(character varying)
RETURNS timestamp without time zone AS
$BODY$DECLARE
docunid alias for $1;
dt date;
ts timestamp;
sdate varchar;
stime varchar;
BEGIN
sdate:= substr(docunid, 21, 4);
stime:= substr(docunid, 27, 6);

dt:= '1926-11-12'::date + cast(hex_to_int(sdate) || ' days' as interval);
ts:= dt::timestamp + cast((hex_to_int(stime)::numeric/100.0)::integer || ' seconds' as interval);
return ts;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION public.docunid_created(character varying) OWNER TO postgres;

in which the function 'hex_to_int' is implemented as:

CREATE OR REPLACE FUNCTION public.hex_to_int(character varying)
RETURNS integer AS
$BODY$
DECLARE
h alias for $1;
exec varchar;
curs refcursor;
res int;
BEGIN
exec := 'SELECT x''' || h || '''::int';
OPEN curs FOR EXECUTE exec;
FETCH curs INTO res;
CLOSE curs;
return res;
END;$BODY$
LANGUAGE 'plpgsql' IMMUTABLE STRICT;
ALTER FUNCTION public.hex_to_int(character varying) OWNER TO postgres;




How to calculate the creation date ... (Shlomo Beth Nah... 4.Apr.07)
. . RE: How to calculate the creation d... (Bruce Mackenzie... 4.Apr.07)
. . . . RE: How to calculate the creation d... (Shlomo Beth Nah... 4.Apr.07)
. . . . . . RE: How to calculate the creation d... (Raphael L. Savi... 4.Apr.07)
. . RE: How to calculate the creation d... (Andrei Kouvchin... 4.Apr.07)
. . RE: How to calculate the creation d... (Erik JA Vos 13.Apr.07)


Document Options






  Document options
Print this pagePrint this page

Search this forum

Forum views and search


  Forum views and search
Date (threaded)
Date (flat)
With excerpt
Author
Category
Platform
Release
Advanced search

Member Tools


RSS Feeds

 RSS feedsRSS
All forum posts RSS
All main topics RSS
More Lotus RSS feeds

Resources

 Resources
Forum use and etiquette
Native Notes Access
Web site Feedback

Lotus Support

 Lotus Support
IBM Support Portal - Lotus software
Lotus Support documents
Lotus support by product
Lotus support downloads
Lotus support RSS feeds

Wikis

 Wikis
IBM Composite Applications
IBM Mashup Center
IBM Connections
IBM Connections Cloud Developers
IBM Docs
IBM Forms
IBM Mobile Connect
IBM Sametime
IBM SmartCloud for Social Business
IBM Web Experience Factory
Lotus Domino
Lotus Domino Designer
Lotus Expeditor
Lotus Foundations
Lotus iNotes
Lotus Instructor Community Courseware
Lotus Notes
Lotus Notes & Domino Application Development
Lotus Notes Traveler
Lotus Protector
Lotus Quickr
Lotus Symphony
IBM Web Content Manager
WebSphere Portal

Lotus Forums


 Lotus Forums
Notes/Domino 9.0
Notes/Domino 8.5 + Traveler
Notes/Domino XPages development forum
Notes/Domino 8
Notes/Domino 6 and 7
IBM Connections
IBM Mobile Connect
IBM Sametime
IBM SmartCloud Notes
Lotus Enterprise Integration
Lotus Protector
Lotus Quickr
Lotus SmartSuite