Обсуждение: calculating interval

Поиск
Список
Период
Сортировка

calculating interval

От
"praveen vejandla"
Дата:
Dear All,

Is there any way in postgresql to calculate the interval between 
two times excluding specific days,specific duration.

Ex:
timestamp1 : 2002-10-01 10:30AM
timestamp2 : 2002-15-01 04:50PM

suppose if i need the difference between timestamp1,timestamp2 but 
i don't want to count how many sun days are coming, i want to 
ignore all sundays in between,i want to ignore certain timings(say 
10.00 AM to 5:00PM)s also,then how can I get the duration in this 
way.

Thanks and Regards,
Praveen


Re: calculating interval

От
Dan Langille
Дата:
On 22 Nov 2002, praveen  vejandla wrote:

> Dear All,
>
> Is there any way in postgresql to calculate the interval between
> two times excluding specific days,specific duration.
>
> Ex:
> timestamp1 : 2002-10-01 10:30AM
> timestamp2 : 2002-15-01 04:50PM
>
> suppose if i need the difference between timestamp1,timestamp2 but
> i don't want to count how many sun days are coming, i want to
> ignore all sundays in between,i want to ignore certain timings(say
> 10.00 AM to 5:00PM)s also,then how can I get the duration in this
> way.

My guess: write a function.  Calculating the number of days between the
two dates is easy.  To avoid certain days, of the week, in your case,
Sunday, I would count the number of whole weeks between the two dates.

test=# select '2002-10-01 10:30AM'::timestamp - '2002-15-01
04:50PM'::timestamp;   ?column?
----------------258 days 16:40

In this case 258/7 = 36.85... So you know you have 36 Sundays in there.
This will need adjusting for non-full weeks.

Hope that gets you started.



Re: calculating interval

От
Jean-Luc Lachance
Дата:
Watch out!  36.85 weeks could have 37 sundays...

Take into account the day of the week of the first and last day.

Also, process the first and last day separately and work with whole day,
if you want to exclude part of the day.


Dan Langille wrote:
> 
> On 22 Nov 2002, praveen  vejandla wrote:
> 
> > Dear All,
> >
> > Is there any way in postgresql to calculate the interval between
> > two times excluding specific days,specific duration.
> >
> > Ex:
> > timestamp1 : 2002-10-01 10:30AM
> > timestamp2 : 2002-15-01 04:50PM
> >
> > suppose if i need the difference between timestamp1,timestamp2 but
> > i don't want to count how many sun days are coming, i want to
> > ignore all sundays in between,i want to ignore certain timings(say
> > 10.00 AM to 5:00PM)s also,then how can I get the duration in this
> > way.
> 
> My guess: write a function.  Calculating the number of days between the
> two dates is easy.  To avoid certain days, of the week, in your case,
> Sunday, I would count the number of whole weeks between the two dates.
> 
> test=# select '2002-10-01 10:30AM'::timestamp - '2002-15-01
> 04:50PM'::timestamp;
>     ?column?
> ----------------
>  258 days 16:40
> 
> In this case 258/7 = 36.85... So you know you have 36 Sundays in there.
> This will need adjusting for non-full weeks.
> 
> Hope that gets you started.
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
> 
> http://archives.postgresql.org


Re: calculating interval

От
Jeff Boes
Дата:
On Fri, 22 Nov 2002 09:26:31 -0500, praveen  vejandla wrote:

> Dear All,
> 
> Is there any way in postgresql to calculate the interval between two
> times excluding specific days,specific duration.
> 
> Ex:
> timestamp1 : 2002-10-01 10:30AM
> timestamp2 : 2002-15-01 04:50PM
> 
> suppose if i need the difference between timestamp1,timestamp2 but i
> don't want to count how many sun days are coming, i want to ignore all
> sundays in between,i want to ignore certain timings(say 10.00 AM to
> 5:00PM)s also,then how can I get the duration in this way.
> 

The easiest way would be to write a function in a language that supports
some kind of date library.  I'm most familiar with Perl and its
Date::Manip library, so that's what I would turn to.


-- 
Jeff Boes                                      vox 616.226.9550 ext 24
Database Engineer                                     fax 616.349.9076
Nexcerpt, Inc.                                 http://www.nexcerpt.com          ...Nexcerpt... Extend your Expertise