matrixorigin / matrixorigin/matrixone
[Compatibility]: DATE_ADD and DATE_SUB return NULL for valid composite second intervals
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## 现象
在 MatrixOne main `99ed717b769e261b842c2f17345bd65865fc1470`,`DATE_ADD/DATE_SUB` 无法处理多种合法的复合 interval,尤其是包含秒和 fractional seconds 的 `MINUTE_SECOND`、`HOUR_SECOND`、`DAY_SECOND`:
```sql
SELECT DATE_ADD(
'2024-01-31 23:59:59.123456',
INTERVAL '1 02:03:04.500000' DAY_SECOND);
SELECT DATE_ADD(
'2024-01-31 23:59:59.123456',
INTERVAL '-1 02:03:04.500000' DAY_SECOND);
SELECT DATE_SUB(
'2024-01-31 23:59:59.123456',
INTERVAL '1 02:03:04.500000' DAY_SECOND);
```
三条语句均返回 `NULL`。同一语句中的 `YEAR_MONTH` 复合 interval 可以正常计算,说明问题集中在 `DAY_SECOND` 解析/执行路径。
进一步矩阵显示 `DAY_HOUR` 和 `HOUR_MINUTE` 可以计算,而 `MINUTE_SECOND`、`HOUR_SECOND`、`DAY_SECOND` 均返回 `NULL`。
## 期望
合法的 `DAY_SECOND` interval 应按天、时、分、秒及 fractional seconds 计算,并保留输入精度;正负 interval 都应得到对应日期时间,而不是静默返回 `NULL`。
## 影响
依赖 MySQL 复合 interval 语法的账期、持续时间和时间序列计算会丢失结果,且没有明确错误提示。
## 复现信息
- MatrixOne main: `99ed717b769e261b842c2f17345bd65865fc1470`
- 重复执行 3 次,结果一致
Contributor guide
Assessment
This issue has not been assessed yet.