The following bug has been logged online:

Bug reference:      2996
Logged by:          Anthony Taylor
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 8.1.8
Operating system:   Linux kernel 2.6.11 (based on Gentoo)
Description:        to_char( timestamp, 'DD-Mon-YYYY HH24:MI:SS.MS' )
reports .1000 ms
Details: 

When using the "to_char" function to output timestamps, some timestamps
report .1000 milliseconds.

Specifically,

select to_char( time, 'DD-Mon-YYYY HH24:MI:SS.MS' ) from test_time;

Reports:

 12-Feb-2007 18:16:34.999
 12-Feb-2007 18:16:34.1000
 12-Feb-2007 18:16:35.000

I believe the 34.1000 should either be 34.999 or 35.000.

According to the documentation (table 9-21, Template Patterns for Date/Time
Formatting):

MS    millisecond (000-999)

Here's a nice little test script:

-- --------------------------------

CREATE TABLE test_time ( time TIMESTAMP );

CREATE OR REPLACE FUNCTION timetest( )
    RETURNS VOID
    AS $$
BEGIN
    FOR i IN 0..100000 LOOP
        INSERT INTO test_time VALUES ( timeofday()::timestamp );
    END LOOP;
END;
$$ LANGUAGE plpgsql;

SELECT timetest();

select to_char( time, 'DD-Mon-YYYY HH24:MI:SS.MS' ) from test_time;

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to