sysdate will return what
$ date
would return for the user environment that started the dedicated or shared server.
eg: if you connect to a shared server, you will get the environment that was in place for the account that started the database.
if you connect to a dedicated server over the network, you will get the environment that was in place for the account that started the listener
if you connect to a dedicated server directly on the server - without using a listener - you will get YOUR environment.
they are ALL the operating system 'time', the timezone however is a factor of the environment.
I demonstrate case 3 below:
[tkyte@dellpe ~]$ <b>date
Fri Oct 2 10:13:05 EDT 2009</b>
[tkyte@dellpe ~]$ plus
SQL*Plus: Release 9.2.0.8.0 - Production on Fri Oct 2 10:13:09 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
ops$tkyte%ORA9IR2> select to_char( sysdate, 'hh24:mi:ss' ) from dual;
<b>
TO_CHAR(
--------
10:13:18
</b>
ops$tkyte%ORA9IR2> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
[tkyte@dellpe ~]$ <b>export TZ=PDT
[tkyte@dellpe ~]$ date
Fri Oct 2 14:13:27 PDT 2009</b>
[tkyte@dellpe ~]$ plus
SQL*Plus: Release 9.2.0.8.0 - Production on Fri Oct 2 14:13:35 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
ops$tkyte%ORA9IR2> select to_char( sysdate, 'hh24:mi:ss' ) from dual;
<b>
TO_CHAR(
--------
14:13:37
</b>