in reply to Date/Time insertion problem with Perl/Oracle

You don't use the Oracle native datatypes for date/time. That would be the proper solution. Both the insert and select statement should work if you just format the date properly, or tell Oracle what format you are using.

You can set the format of a datetime either in your Oracle client setup, for the session (after you connected to Oracle), or in the SQL statement (with the TO_DATE function).

This is how to set the session format:

alter session set NLS_TIMESTAMP_FORMAT = 'RRRR-MM-DD HH24:MI:SS'; alter session set NLS_DATE_FORMAT = 'RRRR-MM-DD'; alter session set NLS_TIME_FORMAT = 'HH24:MI:SS';

You shouldn't trust the client default, it is bound to be wrong somewhere, some time. You could make it easy on yourself and always set a sane default after connecting. Like this:

my $dbh = ... connect ...; $dbh->do("alter session set NLS_TIMESTAMP_FORMAT = 'RRRR-MM-DD HH24:MI +:SS'"); ... etc ...

Google for "oracle nls" for more info about this. NLS stands for National Language Support and is something you should read up on before it bites you again (character sets, non-ASCII chars and such).

/J