日期类型与类似于'2021-10'只有年月的字符串作比较时,一直返回是false,与mysql 5.7不兼容

Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 Bug 的影响】

  select  sysdate()>'2021-09-01';
  select  sysdate()>'2021-09';

在tidb下执行第一条语句时,返回1;执行第二条语句时,返回null;
在mysql下执行时,均返回1. 导致部分地方取时间段的数据时,返回数据为空.
【可能的问题复现步骤】
执行select sysdate()>'2021-09'; 返回为null.
【看到的非预期行为】
返回 null
【期望看到的行为】
返回0或1
【相关组件及具体版本】

【其他背景信息或者截图】
如集群拓扑,系统和内核版本,应用 app 信息等;如果问题跟 SQL 有关,请提供 SQL 语句和相关表的 Schema 信息;如果节点日志存在关键报错,请提供相关节点的日志内容或文件;如果一些业务敏感信息不便提供,请留下联系方式,我们与您私下沟通。

1 个赞

请使用 select CAST(sysdate() AS char(20)) > ‘2021-09’; 进行匹配
此方法与 mysql 8 的行为一致

相关的sql我们已经作了调整. 提出这个问题,主要是想了解下tidb后续是否会在这里与mysql兼容. 如果不作兼容,可以在tidb与mysql的差异中列出来,给从mysql 5.7迁移到tidb的同学提个醒.

后续表现行为更多会与 mysql8 保持一致。
现阶段如果有所调整会在 release note 做出说明
完整 兼容性差异看板还在计划中

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。