Question: When I select sysdate from dual
it shows me the time in EST. But when I try to fetch the time from a
table column which is being updated with sysdate, it shows me the
time in UTC. The table column is a DATE datatype. The
value shows as EST from the application, but it displays as UTC when
fetched through a SQL select in SQL*Plus. Why this difference
in time display?
Answer: The difference is
obviously the way that the date is displayed in SQL*Plus. Some
time display anomalies are the result of your local setting for the
time_zone or the tz_offset variables. Try
this test:
alter
session set time_zone= '-6:00';
select
sysdate,
current_timestamp,
systimestamp,
localtimestamp
from
dual;
This does not apply to you (because your table column is a DATE
datatype, but the
Oracle Globalization manual notes:
"The database time
zone is relevant only for TIMESTAMP WITH LOCAL TIME ZONE columns.
Oracle normalizes all TIMESTAMP WITH LOCAL TIME ZONE data to
the time zone of the database when the data is stored on disk.
If you do not specify the SET TIME_ZONE clause, then Oracle uses
the time zone of the operating system of the server.
If the
operating system's time zone is not a valid Oracle time zone, then
the database time zone defaults to UTC."
|
|
Get the Complete
Oracle SQL Tuning Information
The landmark book
"Advanced Oracle
SQL Tuning The Definitive Reference" is
filled with valuable information on Oracle SQL Tuning.
This book includes scripts and tools to hypercharge Oracle 11g
performance and you can
buy it
for 30% off directly from the publisher.
|