mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-19 16:20:50 +00:00
add test case and doc
This commit is contained in:
parent
74f99d1f07
commit
5e0000c4ca
@ -2019,7 +2019,7 @@ Alias: `dateTrunc`.
|
||||
|
||||
`unit` argument is case-insensitive.
|
||||
|
||||
- `value` — Date and time. [DateTime](../data-types/datetime.md) or [DateTime64](../data-types/datetime64.md).
|
||||
- `value` — Date and time. [Date](../data-types/date.md), [Date32](../data-types/date32.md), [DateTime](../data-types/datetime.md) or [DateTime64](../data-types/datetime64.md).
|
||||
- `timezone` — [Timezone name](../../operations/server-configuration-parameters/settings.md#server_configuration_parameters-timezone) for the returned value (optional). If not specified, the function uses the timezone of the `value` parameter. [String](../data-types/string.md).
|
||||
|
||||
**Returned value**
|
||||
|
@ -194,7 +194,7 @@ private:
|
||||
if (time_column_vec)
|
||||
return dispatchForIntervalColumn(assert_cast<const DataTypeDate32 &>(time_column_type), *time_column_vec, interval_column, result_type, time_zone, input_rows_count);
|
||||
}
|
||||
throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal column for 1st argument of function {}, expected a Date, DateTime or DateTime64", getName());
|
||||
throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal column for 1st argument of function {}, expected a Date, Date32, DateTime or DateTime64", getName());
|
||||
}
|
||||
|
||||
template <typename TimeDataType, typename TimeColumnType>
|
||||
|
@ -1,2 +1 @@
|
||||
1
|
||||
2024-08-26 00:00:00
|
||||
|
@ -1,2 +1 @@
|
||||
SELECT toStartOfDay(now()) = toDateTime(toDate(now()));
|
||||
SELECT toStartOfDay(toDate32(now()));
|
||||
|
@ -1,16 +1,11 @@
|
||||
2022-03-01 00:00:00
|
||||
2022-03-01
|
||||
2022-02-28
|
||||
2022-02-28
|
||||
2022-03-01 00:00:00
|
||||
2022-03-01
|
||||
2022-02-28
|
||||
2022-02-28
|
||||
2022-03-01 00:00:00
|
||||
2022-03-01
|
||||
2022-03-01 00:00:00
|
||||
2022-03-01
|
||||
2022-02-28
|
||||
2022-02-28
|
||||
2022-03-01 12:12:12.012000000
|
||||
2022-03-01 12:12:12.012346
|
||||
|
@ -1,17 +1,12 @@
|
||||
SELECT dateTrunc('DAY', toDateTime('2022-03-01 12:55:55'));
|
||||
SELECT dateTrunc('MONTH', toDateTime64('2022-03-01 12:55:55', 2));
|
||||
SELECT dateTrunc('WEEK', toDate('2022-03-01'));
|
||||
SELECT dateTrunc('WEEK', toDate32('2022-03-01'));
|
||||
SELECT dateTrunc('Day', toDateTime('2022-03-01 12:55:55'));
|
||||
SELECT dateTrunc('Month', toDateTime64('2022-03-01 12:55:55', 2));
|
||||
SELECT dateTrunc('Week', toDate('2022-03-01'));
|
||||
SELECT dateTrunc('Week', toDate32('2022-03-01'));
|
||||
SELECT dateTrunc('day', toDateTime('2022-03-01 12:55:55'));
|
||||
SELECT dateTrunc('month', toDateTime64('2022-03-01 12:55:55', 2));
|
||||
SELECT dateTrunc('day', toDate32('2022-03-01'));
|
||||
SELECT dateTrunc('month', toDate32('2022-03-01'));
|
||||
SELECT dateTrunc('week', toDate('2022-03-01'));
|
||||
SELECT dateTrunc('week', toDate32('2022-03-01'));
|
||||
SELECT dateTrunc('Nanosecond', toDateTime64('2022-03-01 12:12:12.0123', 3));
|
||||
SELECT dateTrunc('MicroSecond', toDateTime64('2022-03-01 12:12:12.0123456', 7));
|
||||
SELECT dateTrunc('MILLISECOND', toDateTime64('2022-03-01 12:12:12.012324251', 9));
|
||||
@ -30,6 +25,3 @@ SELECT dateTrunc('MILLISECOND', toDateTime('2022-03-01')); -- { serverError ILL
|
||||
SELECT dateTrunc('Nanosecond', toDate('2022-03-01')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
SELECT dateTrunc('MicroSecond', toDate('2022-03-01')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
SELECT dateTrunc('MILLISECOND', toDate('2022-03-01')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
SELECT dateTrunc('Nanosecond', toDate32('2022-03-01')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
SELECT dateTrunc('MicroSecond', toDate32('2022-03-01')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
SELECT dateTrunc('MILLISECOND', toDate32('2022-03-01')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
|
@ -0,0 +1,33 @@
|
||||
-- { echoOn }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 YEAR);
|
||||
2022-01-01
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 QUARTER);
|
||||
2022-07-01
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MONTH);
|
||||
2022-09-01
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 WEEK);
|
||||
2022-09-12
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 DAY);
|
||||
2022-09-16 00:00:00
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 HOUR); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MINUTE); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 SECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MILLISECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MICROSECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 NANOSECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('YEAR', toDate32('2022-09-16'));
|
||||
2022-01-01
|
||||
select date_trunc('QUARTER', toDate32('2022-09-16'));
|
||||
2022-07-01
|
||||
select date_trunc('MONTH', toDate32('2022-09-16'));
|
||||
2022-09-01
|
||||
select date_trunc('WEEK', toDate32('2022-09-16'));
|
||||
2022-09-12
|
||||
select date_trunc('DAY', toDate32('2022-09-16'));
|
||||
2022-09-16 00:00:00
|
||||
select date_trunc('HOUR', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('MINUTE', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('SECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('MILLISECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('MICROSECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('NANOSECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
@ -0,0 +1,26 @@
|
||||
-- { echoOn }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 YEAR);
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 QUARTER);
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MONTH);
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 WEEK);
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 DAY);
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 HOUR); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MINUTE); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 SECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MILLISECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 MICROSECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select toStartOfInterval(toDate32('2022-09-16'), INTERVAL 1 NANOSECOND); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
|
||||
select date_trunc('YEAR', toDate32('2022-09-16'));
|
||||
select date_trunc('QUARTER', toDate32('2022-09-16'));
|
||||
select date_trunc('MONTH', toDate32('2022-09-16'));
|
||||
select date_trunc('WEEK', toDate32('2022-09-16'));
|
||||
select date_trunc('DAY', toDate32('2022-09-16'));
|
||||
select date_trunc('HOUR', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('MINUTE', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('SECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('MILLISECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('MICROSECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
select date_trunc('NANOSECOND', toDate32('2022-09-16')); -- { serverError ILLEGAL_TYPE_OF_ARGUMENT }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user