[fix](cast) Add validity check for date conversion for non-vectorization (#12608)
actual result
select cast("0.0000031417" as date);
+------------------------------+
| CAST('0.0000031417' AS DATE) |
+------------------------------+
| 2000-00-00 |
+------------------------------+
expect result
select cast("0.0000031417" as date);
+------------------------------+
| CAST('0.0000031417' AS DATE) |
+------------------------------+
| NULL |
+------------------------------+
This commit is contained in:
@ -165,7 +165,10 @@ IntVal TimestampFunctions::day_of_month(FunctionContext* context, const DateTime
|
||||
return IntVal::null();
|
||||
}
|
||||
const DateTimeValue& ts_value = DateTimeValue::from_datetime_val(ts_val);
|
||||
return IntVal(ts_value.day());
|
||||
if (ts_value.is_valid_date()) {
|
||||
return IntVal(ts_value.day());
|
||||
}
|
||||
return IntVal::null();
|
||||
}
|
||||
|
||||
IntVal TimestampFunctions::day_of_year(FunctionContext* context, const DateTimeVal& ts_val) {
|
||||
|
||||
Reference in New Issue
Block a user