`SUBTIME` returns incorrect result for edging cases
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Bug Report
Please answer these questions before submitting your issue. Thanks!
### 1. Minimal reproduce step (Required)
### 2. What did you expect to see? (Required)
```
mysql> SELECT SUBTIME('9999-12-31 23:59:59.999999', '9999-12-31 23:59:59.999999');
+---------------------------------------------------------------------+
| SUBTIME('9999-12-31 23:59:59.999999', '9999-12-31 23:59:59.999999') |
+---------------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
```
### 3. What did you see instead (Required)
```
mysql> SELECT SUBTIME('9999-12-31 23:59:59.999999', '9999-12-31 23:59:59.999999');
+---------------------------------------------------------------------+
| SUBTIME('9999-12-31 23:59:59.999999', '9999-12-31 23:59:59.999999') |
+---------------------------------------------------------------------+
| 9999-12-31 00:00:00 |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
```
### 4. What is your TiDB version? (Required)
Contributor guide
Assessment
This issue has not been assessed yet.