On Sun, Jun 13, 2010 at 09:38, David Jarvis <thangalin@gmail.com> wrote:
> Hi,
>
>> We had a little chat about this with Magnus. It's pretty surprising that
>> there's no built-in function to do this, we should consider adding one.
>
> I agree; you should be able to create a timestamp or a date from integer
> values. Others, apparently, have written code. The implementation I did was
> pretty rudimentary, but I was going for speed.
>
> If you could overload to_date and to_timestamp, that would be great. For
> example:
>
> to_date( year ) = year-01-01
> to_date( year, month ) = year-month-01
> to_date( year, month, day ) = year-month-day
>
> to_timestamp( year, month, day, hour ) = year-month-day hour:00:00.0000 GMT
> etc.
Not that it would make a huge difference over having to specify 1's
and 0's there, but I agree that could be useful.
>> construct_timestamp(year int4, month int4, date int4, hour int4, minute
>> int4, second int4, milliseconds int4, timezone text)
>
> Also, "date int4" should be "day int4", to avoid confusion with the date
> type.
Yes, absolutely.
> Does it makes sense to use named parameter notation for the first value (the
> year)? This could be potentially confusing:
How so? If it does named parameters, why not all?
> to_date() - What would this return? now()? Jan 1st, 1970? 2000?
ERROR, IMHO. We have a function for now() already, and the others are
so arbitrary there is no way to explain such a choice.
> Similarly, to_timestamp() ...? Seems meaningless without at least a full
> date and an hour.
Agreed.
--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/