[sql] date类型作为条件时, doris在异常情况下表现与mysql不一致

Viewed 75

ddl

create table dept_emp(
    emp_no    int     not null,
    dept_no   char(4) not null,
    from_date date    not null,
    to_date   date    not null,
    primary key (emp_no)
);

时间类型作为条件但没有指定单引号时, 表现不一致

-- mysql不带单引号未报错, 但结果不对
-- doris没报错也没输出
select * from dept_emp where from_date > 2011-01-01;

字符串类型作为条件但没有指定单引号时, 表现一致

-- mysql: [42S22][1054] Unknown column 'AAA' in 'where clause'
-- doris: errCode = 2, detailMessage = Unknown column 'AAA' in 'table list'
select * from dept_emp where dept_no > AAA;
2 Answers

2011-01-01 是个四则运算,结果是2009 也就是说这个sql等于

select * from dept_emp where from_date > 2009;

doris会把两侧cast到date类型计算,2009 cast 到 date 类型结果是 null,所以没有结果

mysql可能是cast到了数字计算

实际这个sql都没有什么意义

已记录,有进展会更新回帖。