SQL Understands Microseconds
July 31, 2002 Timothy Prickett Morgan
I am writing regarding your article, “Using Timestamps as Unique Keys ,” which printed on July 17 in Midrange Guru, OS/400 Edition. I would like to add the following option for consideration.
Although the timestamp microsecond value returned by the TIME operation code is only accurate to three positions, SQL’s current timestamp register returns a value accurate to six positions.
To verify this assumption, I created the following simple SQLRPGLE program:
D timestamp1 s z D timestamp2 s z C time timestamp1 C/exec sql C+ set :timestamp2 = current timestamp C/end-exec C C eval *inlr = *on
When I executed this program in debug, I found the two timestamp fields to have the following values:
TIMESTAMP1 = '2002-07-17-07.26.56.573000' TIMESTAMP2 = '2002-07-17-07.26.56.573256'
Also, if the database file is updated using the SQL UPDATE or INSERT statements, the value can be directly set using the CURRENT TIMESTAMP register. For example, assume a file called paywork, in which the last field is a timestamp field called tstamp:
insert into mylib/paywork values(757, 1000.00, 'M', 2, 1, 100.00, 50.00, current timestamp) update mylib/paywork set tstamp = current timestamp where pwclock = 900
Thanks for bringing it up, Jeff. Speaking of INSERT, if you omit the timestamp field from the list of fields, the system inserts a timestamp with six-digit microseconds:
insert into mylib/paywork (pwclock, pwgross, pwmarstat, pwnbrdep, pwnbrper, pwstatetax, pwlocaltax) values(747, 1000.00, 'm', 2, 1, 100.00, 50.00)
Along the same line, suppose there is a logical file over the paywork file, but this logical file does not include the tstamp field in its field list. If you write to the logical file, the tstamp field will be updated with a value that includes six microsecond digits.
ADVANCED SYSTEMS CONCEPTS
SEQUEL meets all your iSeries and AS/400 data access needs in a single, integrated solution:
Take 6 minutes to view a SEQUEL ViewPoint ScreenCam movie to see how simple Windows-based AS/400 and iSeries data access can be! In just a few short minutes, you can find out ways to make your job easier and improve data access throughout your organization. Download the ViewPoint movie here .
For more information or a FREE trial of SEQUEL, call 847/605-1311 or visit Advanced Systems Concepts.