I needed urgent help on this so I am posting my question in Administration section which seems to be used more.

Here are the queries:
SQLWKS> select to_char(sysdate,'dd-mon-yyyy') from dual;
TO_CHAR(SYS
-----------
22-feb-2001
1 row selected.
SQLWKS> select to_date(sysdate,'dd-mon-yyyy') from dual;
TO_DATE(SYSDATE,'DD-
--------------------
22-FEB-01
1 row selected.

When I do to_date the year is always represented in 2 YY and not in 4 YYYY which I am trying to format to.
When I do to_char the output is a string but with the format i want 4 YYYY. But I don't want output as a string I want it as date. How can I do this ????

In other words I want to get the date formatted so that year is represented in 4 digits and not in 2 digits.

I cannot use to_char as it converts date to string.
I cannot change NLS_date format which will make it complex( in handling customer and not query wise)

Is their any way to get this ???
SYSDATE is just a ex. We will be selecting actual date from a table.

Sonali