ClickHouse/tests/queries/0_stateless/02900_date_time_check_overflow.sql

51 lines
2.1 KiB
SQL

SET session_timezone = 'UTC';
SELECT 'ignore';
SET date_time_overflow_behavior = 'ignore';
SELECT toDateTime(toDateTime64('1900-01-01 00:00:00.123', 3));
SELECT toDateTime(toDateTime64('2299-12-31 23:59:59.999', 3));
SELECT toDateTime(toDate32('1900-01-01'));
SELECT toDateTime(toDate32('2299-12-31'));
SELECT toDateTime(toDate('2149-06-06'));
SELECT toDate(toDateTime64('1900-01-01 00:00:00.123', 3));
SELECT toDate(toDateTime64('2149-06-07 00:00:00.123', 3));
SELECT toDate(toDateTime64('2299-12-31 23:59:59.999', 3));
SELECT toDate(toDate32('1900-01-01'));
SELECT toDate(toDate32('2299-12-31'));
SELECT 'No output on `throw`';
SET date_time_overflow_behavior = 'throw';
SELECT toDateTime(toDateTime64('1900-01-01 00:00:00.123', 3)); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDateTime(toDateTime64('2299-12-31 23:59:59.999', 3)); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDateTime(toDate32('1900-01-01')); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDateTime(toDate32('2299-12-31')); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDateTime(toDate('2149-06-06')); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDate(toDateTime64('1900-01-01 00:00:00.123', 3)); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDate(toDateTime64('2299-12-31 23:59:59.999', 3)); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDate(toDate32('1900-01-01')); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT toDate(toDate32('2299-12-31')); -- { serverError VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE }
SELECT 'saturate';
SET date_time_overflow_behavior = 'saturate';
SELECT toDateTime(toDateTime64('1900-01-01 00:00:00.123', 3));
SELECT toDateTime(toDateTime64('2299-12-31 23:59:59.999', 3));
SELECT toDateTime(toDate32('1900-01-01'));
SELECT toDateTime(toDate32('2299-12-31'));
SELECT toDateTime(toDate('2149-06-06'));
SELECT toDate(toDateTime64('1900-01-01 00:00:00.123', 3));
SELECT toDate(toDateTime64('2149-06-07 00:00:00.123', 3));
SELECT toDate(toDateTime64('2299-12-31 23:59:59.999', 3));
SELECT toDate(toDate32('1900-01-01'));
SELECT toDate(toDate32('2299-12-31'));