diff --git a/src/Interpreters/convertFieldToType.cpp b/src/Interpreters/convertFieldToType.cpp index 79251d944c87..1ea9ecd7e001 100644 --- a/src/Interpreters/convertFieldToType.cpp +++ b/src/Interpreters/convertFieldToType.cpp @@ -194,13 +194,15 @@ Field convertFieldToTypeImpl(const Field & src, const IDataType & type, const ID } else if (which_type.isDateTime64() && which_from_type.isDate()) { - const auto value = static_cast(type).getTimeZone().fromDayNum(DayNum(src.get())); - return DecimalUtils::decimalFromComponentsWithMultiplier(value, 0, 1); + const DataTypeDateTime64 & data_type_date_time64 = static_cast(type); + const Int64 value = data_type_date_time64.getTimeZone().fromDayNum(DayNum(src.get())); + return DecimalUtils::decimalFromComponentsWithMultiplier(value, 0, data_type_date_time64.getScaleMultiplier()); } else if (which_type.isDateTime64() && which_from_type.isDate32()) { - const auto value = static_cast(type).getTimeZone().fromDayNum(DayNum(src.get())); - return DecimalUtils::decimalFromComponentsWithMultiplier(value, 0, 1); + const DataTypeDateTime64 & data_type_date_time64 = static_cast(type); + const Int64 value = data_type_date_time64.getTimeZone().fromDayNum(DayNum(src.get())); + return DecimalUtils::decimalFromComponentsWithMultiplier(value, 0, data_type_date_time64.getScaleMultiplier()); } else if (type.isValueRepresentedByNumber() && src.getType() != Field::Types::String) {