Expression castRealAsTime does not respect sql mode.
- 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)
```sql
create table t(d1 double, f float);
insert into t values(0, 0);
set session sql_mode = "NO_ZERO_IN_DATE,NO_ZERO_DATE";
select cast(d1 as datetime), cast(f as datetime) from t;
```
### 2. What did you expect to see? (Required)
```sql
+----------------------+---------------------+
| cast(d1 as datetime) | cast(f as datetime) |
+----------------------+---------------------+
| NULL | NULL |
+----------------------+---------------------+
```
### 3. What did you see instead (Required)
```sql
+----------------------+---------------------+
| cast(d1 as datetime) | cast(f as datetime) |
+----------------------+---------------------+
| 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
+----------------------+---------------------+
```
### 4. What is your TiDB version? (Required)
nightly
Other expressions like castDecimalAsTime, etc. may have the same problem.
Contributor guide
Assessment
This issue has not been assessed yet.