I've observed the following seeming inconsistency in postgres:
select ('2003-04-18'=current_timestamp::date) --> True
select ('2003-04-18'::date=current_timestamp::date) --> True
select (d=current_timestamp) from t --> False
select (d=current_timestamp::date) from t --> False
select (d::date=current_timestamp::date) from t --> False
TEST=# select ('2003-04-18'=current_timestamp::date);
?column?
----------
t
(1 row)
TEST=# select ('2003-04-18'::date=current_timestamp::date);
?column?
----------
t
(1 row)
TEST=# create table t(d date);
CREATE TABLE
TEST=# insert into t values('2003-04-08');
INSERT 4475385 1
TEST=# select * from t;
d
------------
2003-04-08
(1 row)
TEST=# select (d=current_timestamp) from t;
?column?
----------
f
(1 row)
TEST=# select (d=current_timestamp::date) from t;
?column?
----------
f
(1 row)
TEST=# select (d::date=current_timestamp::date) from t;
?column?
----------
f
(1 row)
Jean-Christian Imbeault