Thread: in-date news items

in-date news items

From
Gary Stainburn
Date:
Hi all,

I'm trying to use a select to get the latest item of news, provided that it's 
within the last X days.  What do I need to add to the where clause for the 
select statement below:

select ndate, nauthor, nheading   from news   order by ndate desc   limit 1
*** where ndate within the last 3 months ******
;
-- 
Gary Stainburn
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000     


Re: in-date news items

From
Gary Stainburn
Date:
On Tuesday 12 March 2002 1:25 pm, Ian Barwick wrote:
> On Tuesday 12 March 2002 13:17, Gary Stainburn wrote:
> > Hi all,
> >
> > I'm trying to use a select to get the latest item of news, provided that
> > it's within the last X days.  What do I need to add to the where clause
> > for the select statement below:
> >
> > select ndate, nauthor, nheading
> >     from news
> >     order by ndate desc
> >     limit 1
> > *** where ndate within the last 3 months ******
> > ;
>
> something like:
>
>  where ndate > current_timestamp - interval '3 months'
>
> more on the subject here:
>
> http://techdocs.postgresql.org/techdocs/faqdatesintervals.php
>
> Ian Barwick

Thanks for that Ian, worked a treat.  However, can someone tell me why

select n.ntimestamp, n.nmid from news n where n.ntimestamp > current_time - 
interval '5 minutes';

works while

select n.ntimestamp, n.nmid, m.mfname, m.mlname from news n, members m order by ntimestamp desc  limit 1 where (n.nmid
=m.mid) and     (n.ntimestamp > current_time - interval '5 minutes');
 

has a parse error at or near "where"
-- 
Gary Stainburn
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000     


Re: in-date news items

From
"Andrew G. Hammond"
Date:
On Tue, Mar 12, 2002 at 12:17:05PM +0000, Gary Stainburn wrote:
> Hi all,
>
> I'm trying to use a select to get the latest item of news, provided that it's
> within the last X days.  What do I need to add to the where clause for the
> select statement below:
>
> select ndate, nauthor, nheading
>     from news
>     order by ndate desc
>     limit 1
> *** where ndate within the last 3 months ******

you'll laugh when you see this... :)

WHERE ndate > 'now'::datetime - '3 months'::interval;

--
Andrew G. Hammond  mailto:drew@xyzzy.dhs.org  http://xyzzy.dhs.org/~drew/
56 2A 54 EF 19 C0 3B 43 72 69 5B E3 69 5B A1 1F              613-389-5481
5CD3 62B0 254B DEB1 86E0  8959 093E F70A B457 84B1
"To blow recursion you must first blow recur" -- me

Re: in-date news items

From
Peter Eisentraut
Date:
Gary Stainburn writes:

> select ndate, nauthor, nheading
>     from news
>     order by ndate desc
>     limit 1
> *** where ndate within the last 3 months ******

ndate >= current_date - interval '3 months' and ndate <= current_date

-- 
Peter Eisentraut   peter_e@gmx.net



Re: in-date news items

From
Stephan Szabo
Date:
> Thanks for that Ian, worked a treat.  However, can someone tell me why
>
> select n.ntimestamp, n.nmid from news n where n.ntimestamp > current_time -
> interval '5 minutes';
>
> works while
>
> select n.ntimestamp, n.nmid, m.mfname, m.mlname
>   from news n, members m
>   order by ntimestamp desc
>   limit 1
>   where (n.nmid = m.mid) and
>      (n.ntimestamp > current_time - interval '5 minutes');
>
> has a parse error at or near "where"

The where clause should go between the from and order by.




Re: in-date news items

From
Ian Barwick
Date:
On Tuesday 12 March 2002 13:17, Gary Stainburn wrote:
> Hi all,
>
> I'm trying to use a select to get the latest item of news, provided that
> it's within the last X days.  What do I need to add to the where clause for
> the select statement below:
>
> select ndate, nauthor, nheading
>     from news
>     order by ndate desc
>     limit 1
> *** where ndate within the last 3 months ******
> ;

something like:
where ndate > current_timestamp - interval '3 months'  

more on the subject here:

http://techdocs.postgresql.org/techdocs/faqdatesintervals.php

Ian Barwick


Re: in-date news items

From
Ian Barwick
Date:
On Tuesday 12 March 2002 18:19, Gary Stainburn wrote:
> On Tuesday 12 March 2002 1:25 pm, Ian Barwick wrote:
> > On Tuesday 12 March 2002 13:17, Gary Stainburn wrote:
> > > Hi all,
> > >
> > > I'm trying to use a select to get the latest item of news, provided
> > > that it's within the last X days.  What do I need to add to the where
> > > clause for the select statement below:
> > >
> > > select ndate, nauthor, nheading
> > >     from news
> > >     order by ndate desc
> > >     limit 1
> > > *** where ndate within the last 3 months ******
> > > ;
> >
> > something like:
> >
> >  where ndate > current_timestamp - interval '3 months'
> >
> > more on the subject here:
> >
> > http://techdocs.postgresql.org/techdocs/faqdatesintervals.php
> >
> > Ian Barwick
>
> Thanks for that Ian, worked a treat.  However, can someone tell me why
>
> select n.ntimestamp, n.nmid from news n where n.ntimestamp > current_time -
> interval '5 minutes';
>
> works while
>
> select n.ntimestamp, n.nmid, m.mfname, m.mlname
>   from news n, members m
>   order by ntimestamp desc
>   limit 1
>   where (n.nmid = m.mid) and
>      (n.ntimestamp > current_time - interval '5 minutes');
>
> has a parse error at or near "where"

select n.ntimestamp, n.nmid, m.mfname, m.mlname from news n, members m where (n.nmid = m.mid) and     (n.ntimestamp >
current_time- interval '5 minutes') order by ntimestamp desc  limit 1
 

should work...

Ian Barwick