ops$tkyte@ORA11GR2> create table t ( x date ); Table created. ops$tkyte@ORA11GR2> insert into t (x) values 2 ( to_date( '25-jun-2005 12:01:00', 3 'dd-mon-yyyy hh24:mi:ss' ) ); 1 row created. ops$tkyte@ORA11GR2> select x, dump(x,10) d from t; X D --------- ----------------------------------- 25-JUN-05 Typ=12 Len=7: 120,105,6,25,13,2,1 The century and year bytes (the 120,105 in the DUMP output) are stored in an excess-100 notation. You would have to subtract 100 from them to determine the correct century and year. The reason for the excess-100 notation is support of BC and AD dates. If you subtract 100 from the century byte and get a negative number, it is a BC date. For example: ops$tkyte@ORA11GR2> insert into t (x) values 2 ( to_date( '01-jan-4712bc', 3 'dd-mon-yyyybc hh24:mi:ss' ) ); 1 row created. ops$tkyte@ORA11GR2> select x, dump(x,10) d from t; X D --------- ----------------------------------- 25-JUN-05 Typ=12 Len=7: 120,105,6,25,13,2,1 01-JAN-12 Typ=12 Len=7: 53,88,1,1,1,1,1 |