update doc & comments

This commit is contained in:
kevinyhzou 2024-11-11 14:26:58 +08:00
parent ab79efe40f
commit 0768e0b265
2 changed files with 12 additions and 20 deletions

View File

@ -6874,14 +6874,14 @@ Converts a [String](../data-types/string.md) to [DateTime64](../data-types/datet
**Syntax**
``` sql
parseDateTime64(str[, [scale, [format[, timezone]]]])
parseDateTime64(str, scale, [format[, timezone]])
```
**Arguments**
- `str` — The String to be parsed
- `str` — The String to be parsed.
- `scale` - The scale of [DateTime64](../data-types/datetime64.md).
- `format` — The format string. Optional. `%Y-%m-%d %H:%i:%s` if not specified.
- `format` — The format string. Optional. `%Y-%m-%d %H:%i:%s.%f` if not specified.
- `timezone` — [Timezone](/docs/en/operations/server-configuration-parameters/settings.md#timezone). Optional.
**Returned value(s)**
@ -6901,12 +6901,12 @@ Converts a [String](../data-types/string.md) to [DateTime64](../data-types/datet
**Syntax**
``` sql
parseDateTime64InJodaSyntax(str[, [scale, [format[, timezone]]]])
parseDateTime64InJodaSyntax(str, scale, [format[, timezone]])
```
**Arguments**
- `str` — The String to be parsed
- `str` — The String to be parsed.
- `scale` - The scale of [DateTime64](../data-types/datetime64.md).
- `format` — The format string. Optional. `yyyy-MM-dd HH:mm:ss` if not specified.
- `timezone` — [Timezone](/docs/en/operations/server-configuration-parameters/settings.md#timezone). Optional.

View File

@ -608,26 +608,18 @@ namespace
DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override
{
FunctionArgumentDescriptors mandatory_args;
FunctionArgumentDescriptors optional_args;
if constexpr (return_type == ReturnType::DateTime64)
{
mandatory_args = {
{"time", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), nullptr, "String"},
{"scale", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isUInt8), nullptr, "UInt8"}
{"scale", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isUInt8), &isColumnConst, "UInt8"}
};
optional_args = {
{"format", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), nullptr, "String"},
{"timezone", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), &isColumnConst, "const String"}
};
}
else
{
mandatory_args = {{"time", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), nullptr, "String"}};
optional_args = {
{"format", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), nullptr, "String"},
{"timezone", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), &isColumnConst, "const String"}
};
}
FunctionArgumentDescriptors optional_args{
{"format", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), nullptr, "String"},
{"timezone", static_cast<FunctionArgumentDescriptor::TypeValidator>(&isString), &isColumnConst, "const String"}
};
validateFunctionArguments(*this, arguments, mandatory_args, optional_args);
String time_zone_name = getTimeZone(arguments).getTimeZone();
@ -644,7 +636,7 @@ namespace
throw Exception(ErrorCodes::BAD_ARGUMENTS, "The scale argument is not Const(UInt8) type.");
}
if (parse_syntax == ParseSyntax::MySQL && scale != 6)
throw Exception(ErrorCodes::BAD_ARGUMENTS, "The scale value {} of MySQL parse syntax is not 6.", std::to_string(scale));
throw Exception(ErrorCodes::BAD_ARGUMENTS, "The scale argument's value {} of MySQL parse syntax is not 6.", std::to_string(scale));
if (scale > maxScaleOfDateTime64)
throw Exception(ErrorCodes::BAD_ARGUMENTS,
"The scale argument's value {} exceed the max scale value {}.", std::to_string(scale), std::to_string(maxScaleOfDateTime64));