diff --git a/src/sql/resolver/ddl/ob_ddl_resolver.cpp b/src/sql/resolver/ddl/ob_ddl_resolver.cpp index 1077bd1cfc..f7f73661e6 100644 --- a/src/sql/resolver/ddl/ob_ddl_resolver.cpp +++ b/src/sql/resolver/ddl/ob_ddl_resolver.cpp @@ -2681,7 +2681,7 @@ int ObDDLResolver::cast_default_value(ObObj& default_value, const ObTimeZoneInfo if (OB_SUCC(ret)) { default_value.set_number(column_schema.get_data_type(), nmb); } - } + } if (OB_FAIL(ret)) { ret = OB_INVALID_DEFAULT; LOG_USER_ERROR(OB_INVALID_DEFAULT, @@ -2690,6 +2690,15 @@ int ObDDLResolver::cast_default_value(ObObj& default_value, const ObTimeZoneInfo } } } + if (OB_SUCC(ret)) { + if (default_value.get_type() == column_schema.get_data_type() + && (ObTimeTC == column_schema.get_data_type_class() || + ObDateTimeTC == column_schema.get_data_type_class())) { + int64_t value = default_value.get_time(); + ObTimeConverter::round_datetime(column_schema.get_data_scale(), value); + default_value.set_time_value(value); + } + } return ret; }