On Mon, 22 Dec 2003 at 21:30 GMT, Paul Morgan penned:
> 
> Monique, you're using the to_date function the wrong way round, which is
> not an uncommon mistake.
> 
> to_date() converts a string to a date, *not* a date to a string.  So your
> working example works because to_date() is taking the string '05 Dec
> 2000', using the format 'DD Mon YYYY' to determine the position of the
> elements *within the string*, and then creating a date datatype, which it
> is then displaying according to the default date display rules.
> 
> If you want to convert a date to a string (which *is* what you want to
> do), the function is to_char().
> 
> Example:
> 
> I built a table 'test' with a date column 'test_dt'.  Here's the whole
> example from inserting a date to getting it out formatted:
> 
> media=# show datestyle;
>            DateStyle
> -------------------------------
>  ISO with European conventions
> 
> media=# insert into test values ('2003-12-14');
> INSERT 17112 1
> 
> media=# select * from test;
>   test_dt
> ------------
>  2003-12-14
> (1 row)
> 
> -- the wrong way to do it :
> 
> media=# select to_date (test_dt, 'DD Mon YYYY') from test;
> ERROR:  to_timestamp(): bad value for MON/Mon/mon
> 
> -- the right way to do it:
> 
> media=# select to_char (test_dt,'DD Mon YYYY') from test;
>   to_char
> -----------
>  14 Dec 2003
> (1 row)
> 
> I am just so delighted that I can actually post a helpful note in this
> group, even if it is OT :)
> 

Thank you so much!  This is exactly what I was looking for, and your
example made it very easy to understand.

-- 
monique


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to