mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-10 08:22:00 +00:00
50 lines
2.5 KiB
SQL
50 lines
2.5 KiB
SQL
SET allow_deprecated_snowflake_conversion_functions = 1; -- Force-enable deprecated snowflake conversion functions (in case this is randomized in CI)
|
|
SET session_timezone = 'Africa/Juba';
|
|
|
|
-- Error cases
|
|
SELECT dateTimeToSnowflake(); -- {serverError NUMBER_OF_ARGUMENTS_DOESNT_MATCH}
|
|
SELECT dateTime64ToSnowflake(); -- {serverError NUMBER_OF_ARGUMENTS_DOESNT_MATCH}
|
|
|
|
SELECT dateTimeToSnowflake('abc'); -- {serverError ILLEGAL_TYPE_OF_ARGUMENT}
|
|
SELECT dateTime64ToSnowflake('abc'); -- {serverError ILLEGAL_TYPE_OF_ARGUMENT}
|
|
|
|
SELECT dateTimeToSnowflake('abc', 123); -- {serverError NUMBER_OF_ARGUMENTS_DOESNT_MATCH}
|
|
SELECT dateTime64ToSnowflake('abc', 123); -- {serverError NUMBER_OF_ARGUMENTS_DOESNT_MATCH}
|
|
|
|
SELECT dateTimeToSnowflake(now()) SETTINGS allow_deprecated_snowflake_conversion_functions = 0; -- { serverError DEPRECATED_FUNCTION }
|
|
SELECT dateTime64ToSnowflake(now64()) SETTINGS allow_deprecated_snowflake_conversion_functions = 0; -- { serverError DEPRECATED_FUNCTION }
|
|
|
|
SELECT '-- const / non-const inputs';
|
|
|
|
WITH toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai') AS dt
|
|
SELECT dt, dateTimeToSnowflake(dt), materialize(dateTimeToSnowflake(dt));
|
|
|
|
WITH toDateTime64('2021-08-15 18:57:56.492', 3, 'Asia/Shanghai') AS dt64
|
|
SELECT dt64, dateTime64ToSnowflake(dt64), materialize(dateTime64ToSnowflake(dt64));
|
|
|
|
SELECT '-- different DateTime64 scales';
|
|
|
|
WITH toDateTime64('2021-08-15 18:57:56.492', 0, 'UTC') AS dt64_0,
|
|
toDateTime64('2021-08-15 18:57:56.492', 1, 'UTC') AS dt64_1,
|
|
toDateTime64('2021-08-15 18:57:56.492', 2, 'UTC') AS dt64_2,
|
|
toDateTime64('2021-08-15 18:57:56.492', 3, 'UTC') AS dt64_3,
|
|
toDateTime64('2021-08-15 18:57:56.492', 4, 'UTC') AS dt64_4
|
|
SELECT dateTime64ToSnowflake(dt64_0),
|
|
dateTime64ToSnowflake(dt64_1),
|
|
dateTime64ToSnowflake(dt64_2),
|
|
dateTime64ToSnowflake(dt64_3),
|
|
dateTime64ToSnowflake(dt64_4);
|
|
|
|
-- DateTime64-to-Snowflake-to-DateTime64 is idempotent *if* the scale is <=3 (millisecond precision)
|
|
WITH now64(0, 'UTC') AS dt64_0,
|
|
now64(1, 'UTC') AS dt64_1,
|
|
now64(2, 'UTC') AS dt64_2,
|
|
now64(3, 'UTC') AS dt64_3
|
|
SELECT snowflakeToDateTime64(dateTime64ToSnowflake(dt64_0), 'UTC') == dt64_0,
|
|
snowflakeToDateTime64(dateTime64ToSnowflake(dt64_1), 'UTC') == dt64_1,
|
|
snowflakeToDateTime64(dateTime64ToSnowflake(dt64_2), 'UTC') == dt64_2,
|
|
snowflakeToDateTime64(dateTime64ToSnowflake(dt64_3), 'UTC') == dt64_3;
|
|
|
|
WITH toDateTime64('2023-11-11 11:11:11.1231', 4, 'UTC') AS dt64_4
|
|
SELECT dt64_4, snowflakeToDateTime64(dateTime64ToSnowflake(dt64_4), 'UTC'); -- not idempotent
|