Thread: in-date news items
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
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
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
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
> 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.
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
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