Error with a SQL query 'between .. and .. and'

Started by Turbo Fredrikssonabout 24 years ago2 messageshackers
Jump to latest
#1Turbo Fredriksson
turbo@bayour.com

This SQL query works in 7.1.3, but not in 7.2, how come?

select count(*) from log where starttime between now()-interval(60*60) and now() and statuscode='2';
ERROR: parser: parse error at or near "*"

If I precalculate 60*60, I get this:

select count(*) from log where starttime between now()-interval(3600) and now() and statuscode='2';
ERROR: parser: parse error at or near "and"

nuclear supercomputer explosion Marxist FBI Iran SEAL Team 6 quiche
Qaddafi nitrate class struggle South Africa counter-intelligence
attack Ortega
[See http://www.aclu.org/echelonwatch/index.html for more about this]

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Turbo Fredriksson (#1)
Re: Error with a SQL query 'between .. and .. and'

Turbo Fredriksson <turbo@bayour.com> writes:

This SQL query works in 7.1.3, but not in 7.2, how come?
select count(*) from log where starttime between now()-interval(60*60) and now() and statuscode='2';
ERROR: parser: parse error at or near "*"

interval(n) is a type name now, as required by SQL92.

Try

"interval"(60*60)
(60*60)::interval
CAST (60*60 AS interval)

Only the last of these is actually standard.

regards, tom lane