不正确的日期类型转换

使用下面命令部署数据库

docker pull oceanbase/oceanbase-ce:4.3.5-lts
docker run -p 2881:2881 --name oceanbase-ce -d oceanbase/oceanbase-ce:4.3.5-lts
mysql -h127.0.0.1 -P12881 -uroot@test  # Connect with the root account of a general tenant

运行一下测试用例,预期结果应该为0或者为NULL,因为1不能够转化为DATE类型

CREATE TABLE t1 (c1 INT); 
INSERT INTO t1 (c1) VALUES (1);
SELECT c1 = DATE'0000-00-00' FROM t1; -- actual: {1}, expected: {0}
3 个赞

为什么这样测试 是在用这个函数么?

我们这边在测试OB的类型转换是否存在问题

有意义吗

1 个赞

生产环境中可能不会出现这种整数到日期类型的转换吗

和mysql不一致么?

我在MySQL 8.4.6上运行得到了下面的结果,返回了一个错误信息

CREATE TABLE t1 (c1 INT); 
INSERT INTO t1 (c1) VALUES (1);
SELECT c1 = DATE'0000-00-00' FROM t1; 
-- ERROR 1525 (HY000): Incorrect DATE value: '0000-00-00'

好的 我问一下相关的同学

不符合预期 处理的值有问题 后期会修复 正常情况下应该是这样

1 个赞

比较极端的例子

学习学习