Обсуждение: SQL Error
Hallo,
I have following table:
CREATE TABLE "scheduler_action" ( "scheduler_action_id" numeric(30) NOT NULL, "action_type" numeric(4) NOT
NULL, "priority" numeric(4) NOT NULL, "referenced_id" numeric(30) NOT NULL, "invocation_date"
numeric(30)NOT NULL, "is_done" numeric(1) NOT NULL, PRIMARY KEY ("scheduler_action_id")
);
My quety look so:
select t0_o.scheduler_action_id from scheduler_action t0_o where
t0_o.is_done = 0 and t0_o.invocation_date <= 1034033214921
And I get following error:
ERROR: Unable to identify an operator '<=' for types 'numeric' and 'double
precision' You will have to retype this query using an explicit cast
But if my query looks like:
select t0_o.scheduler_action_id from scheduler_action t0_o where
t0_o.is_done = 0 and t0_o.invocation_date <= '1034033214921'
"invocation_date" is numeric with p=30 and s=0.
Best Regards,
Rafal
> CREATE TABLE "scheduler_action" (
> "scheduler_action_id" numeric(30) NOT NULL,
> "action_type" numeric(4) NOT NULL,
> "priority" numeric(4) NOT NULL,
> "referenced_id" numeric(30) NOT NULL,
> "invocation_date" numeric(30) NOT NULL,
> "is_done" numeric(1) NOT NULL,
> PRIMARY KEY ("scheduler_action_id")
> );
>
> My quety look so:
>
> select t0_o.scheduler_action_id from scheduler_action t0_o where
> t0_o.is_done = 0 and t0_o.invocation_date <= 1034033214921
>
> And I get following error:
>
> ERROR: Unable to identify an operator '<=' for types 'numeric' and
'double
> precision'
> You will have to retype this query using an explicit cast
>
> But if my query looks like:
>
> select t0_o.scheduler_action_id from scheduler_action t0_o where
> t0_o.is_done = 0 and t0_o.invocation_date <= '1034033214921'
>
> "invocation_date" is numeric with p=30 and s=0.
>
I've got the same error message on
select version(); version
---------------------------------------------------------------PostgreSQL 7.2.1 on hppa-hp-hpux10.20, compiled by GCC
2.95.2
but
select t0_o.scheduler_action_id from scheduler_action t0_o where
template1-# t0_o.is_done = 0 and t0_o.invocation_date <=
1034033214921::numeric ;
did work;
I cannot see why this is necessary, and I cannot understand why nobody
else
replied to both of your requests.
Regards, Christoph
select t0_o.scheduler_action_id from scheduler_action t0_o where t0_o.is_done = 0 and t0_o.invocation_date <= 1034033214921::numeric; seems to work in PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96 The reason that this query worked in hpux without the explicit casting is maybe hpux runs on a 64-bit architecture processor ================================================================== Achilleus Mantzios S/W Engineer IT dept Dynacom Tankers Mngmt Nikis 4, Glyfada Athens 16610 Greece tel: +30-10-8981112 fax: +30-10-8981877 email: achill@matrix.gatewaynet.com mantzios@softlab.ece.ntua.gr