pingcap / pingcap/tidb

Expression castRealAsTime does not respect sql mode.

Open
#37,539 1 comment 0 reactions 0 assignees View on GitHub
affects-5.0 affects-5.1 affects-5.2 affects-5.3 affects-5.4 affects-6.0 affects-6.1 affects-6.2 affects-6.3 affects-6.4 affects-6.5 affects-6.6 affects-7.0 affects-7.1 affects-7.5 affects-8.1 may-affects-4.0 severity/major sig/execution type/bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.