Thread: Extracting data by months

Extracting data by months

From
Antti Linno
Date:
Lo.
I'm in dire need of knowledge, how to extract data by month. Monthday
and year arent' important, those I can't give from perl script, but what
I do give to postgres are the numbers of the months. Date field is in
timestamp. I thought about date_trunc, but I can't think of, how to get
data with it. In script will be 12 queries, for each month, to get the
news from that month.  
Btw, is there somewhere a manual about date_trunc, the docs that come with
RH6.1 distribution are somewhat short and lacking explanation of
date_trunc.
Antti




Re: Extracting data by months

From
John McKown
Date:
This might seem rather silly, but could you simply do something like:

select * from database      where date_field >= '01/01/2000'::date      and   date_field < '02/01/2000'::date;

Of course, if date_field could contain many different years, then this
would not get you the result you wanted.

John

On Thu, 3 Aug 2000, Antti Linno wrote:

> Lo.
> 
>  I'm in dire need of knowledge, how to extract data by month. Monthday
> and year arent' important, those I can't give from perl script, but what
> I do give to postgres are the numbers of the months. Date field is in
> timestamp. I thought about date_trunc, but I can't think of, how to get
> data with it. In script will be 12 queries, for each month, to get the
> news from that month.  
> Btw, is there somewhere a manual about date_trunc, the docs that come with
> RH6.1 distribution are somewhat short and lacking explanation of
> date_trunc.
> Antti
> 
> 



Re: Extracting data by months

From
Daniel Kalchev
Date:
Actually, PostgreSQL has specific function for this purpose. The query would 
be:

SELECT * FROM table WHERE date_part('month', date_field) = '8';

(example to select month 8)

If you use date_trunc, the selection will be by month/year - that is, 
date_trunc('month', date_field) will always result in the 1st monthday of the 
month. The year will be preserved.

Daniel

>>>John McKown said:> This might seem rather silly, but could you simply do something like:> > select * from database>
     where date_field >= '01/01/2000'::date>        and   date_field < '02/01/2000'::date;> > Of course, if date_field
couldcontain many different years, then this> would not get you the result you wanted.> > John> > On Thu, 3 Aug 2000,
AnttiLinno wrote:> > > Lo.> > > >  I'm in dire need of knowledge, how to extract data by month. Monthday> > and year
arent'important, those I can't give from perl script, but what> > I do give to postgres are the numbers of the months.
Datefield is in> > timestamp. I thought about date_trunc, but I can't think of, how to get> > data with it. In script
willbe 12 queries, for each month, to get the> > news from that month.  > > Btw, is there somewhere a manual about
date_trunc,the docs that come with> > RH6.1 distribution are somewhat short and lacking explanation of> > date_trunc.>
>Antti> > > > > 
 




Re: Extracting data by months

From
"Sandis"
Date:
I do it like this:

SELECT datums FROM jaunumi
WHERE date_part('year',datetime(datums)) = '2000' AND             date_part('month',datetime(datums)) = '08';

Where datums is a timestamp field.

Regards,
Sandis Jerics
www.mediaparks.lv

> This might seem rather silly, but could you simply do something like:
>
> select * from database
>        where date_field >= '01/01/2000'::date
>        and   date_field < '02/01/2000'::date;
>
> Of course, if date_field could contain many different years, then this
> would not get you the result you wanted.
>
> John
>
> On Thu, 3 Aug 2000, Antti Linno wrote:
>
> > Lo.
> >
> >  I'm in dire need of knowledge, how to extract data by month. Monthday
> > and year arent' important, those I can't give from perl script, but what
> > I do give to postgres are the numbers of the months. Date field is in
> > timestamp. I thought about date_trunc, but I can't think of, how to get
> > data with it. In script will be 12 queries, for each month, to get the
> > news from that month.
> > Btw, is there somewhere a manual about date_trunc, the docs that come
with
> > RH6.1 distribution are somewhat short and lacking explanation of
> > date_trunc.
> > Antti
> >
> >
>



Re: Extracting data by months

From
Daniel Kalchev
Date:
This is not exactly what the original question was about. You select the month 
is one specific year only.

What you do it however easier achieved by:

SELECT datums FROM jaunumi WHERE date_trunc('month', datums) = '2000-08-01';

datetime is an type full of tricks. :-)

Daniel

>>>"Sandis" said:> I do it like this:> > SELECT datums FROM jaunumi> WHERE date_part('year',datetime(datums)) = '2000'
AND>              date_part('month',datetime(datums)) = '08';> > Where datums is a timestamp field.> > Regards,> Sandis
Jerics>www.mediaparks.lv> > > This might seem rather silly, but could you simply do something like:> >> > select * from
database>>        where date_field >= '01/01/2000'::date> >        and   date_field < '02/01/2000'::date;> >> > Of
course,if date_field could contain many different years, then this> > would not get you the result you wanted.> >> >
John>>> > On Thu, 3 Aug 2000, Antti Linno wrote:> >> > > Lo.> > >> > >  I'm in dire need of knowledge, how to extract
databy month. Monthday> > > and year arent' important, those I can't give from perl script, but what> > > I do give to
postgresare the numbers of the months. Date field is in> > > timestamp. I thought about date_trunc, but I can't think
of,how to get> > > data with it. In script will be 12 queries, for each month, to get the> > > news from that month.> >
>Btw, is there somewhere a manual about date_trunc, the docs that come> with> > > RH6.1 distribution are somewhat short
andlacking explanation of> > > date_trunc.> > > Antti> > >> > >> >> 
 




Re: Extracting data by months

From
Karel Zak
Date:
On Fri, 4 Aug 2000, Sandis wrote:

> I do it like this:
> 
> SELECT datums FROM jaunumi
> WHERE date_part('year',datetime(datums)) = '2000' AND
>               date_part('month',datetime(datums)) = '08';
> 
> Where datums is a timestamp field.
Or (in 7.0):
SELECT datums FROM jaunum WHERE to_char('YYYY/MM', datums) = '2000/08'; 
....becuase it more simple and it *will faster*.
                Karel