<test> <tags> <tag>long</tag> </tags> <substitutions> <substitution> <name>datetime_transform</name> <values> <value>toSecond</value> <value>toMinute</value> <value>toHour</value> <value>toDayOfWeek</value> <value>toDayOfMonth</value> <value>toDayOfYear</value> <value>toMonth</value> <value>toQuarter</value> <value>toYear</value> <value>toISOWeek</value> <value>toISOYear</value> <value>toStartOfMinute</value> <value>toStartOfFiveMinute</value> <value>toStartOfFifteenMinutes</value> <value>toStartOfHour</value> <value>toStartOfDay</value> <value>toDate</value> <value>toMonday</value> <value>toStartOfMonth</value> <value>toStartOfQuarter</value> <value>toStartOfYear</value> <value>toStartOfISOYear</value> <value>toTime</value> <value>toRelativeYearNum</value> <value>toRelativeMonthNum</value> <value>toRelativeWeekNum</value> <value>toRelativeDayNum</value> <value>toRelativeHourNum</value> <value>toRelativeMinuteNum</value> <value>toRelativeSecondNum</value> <value>toYYYYMM</value> <value>toYYYYMMDD</value> <value>toYYYYMMDDhhmmss</value> <value>timeSlot</value> <value>toRelativeQuarterNum</value> <value>toStartOfTenMinutes</value> <value>toUnixTimestamp</value> </values> </substitution> <substitution> <name>date_transform</name> <values> <value>toDayOfWeek</value> <value>toDayOfMonth</value> <value>toDayOfYear</value> <value>toMonth</value> <value>toQuarter</value> <value>toYear</value> <value>toISOWeek</value> <value>toISOYear</value> <value>toDate</value> <value>toMonday</value> <value>toStartOfDay</value> <value>toStartOfMonth</value> <value>toStartOfQuarter</value> <value>toStartOfYear</value> <value>toStartOfISOYear</value> <value>toRelativeYearNum</value> <value>toRelativeMonthNum</value> <value>toRelativeWeekNum</value> <value>toRelativeDayNum</value> <value>toYYYYMM</value> <value>toYYYYMMDD</value> <value>toYYYYMMDDhhmmss</value> <value>toRelativeQuarterNum</value> <value>toUnixTimestamp</value> </values> </substitution> <substitution> <name>time_zone</name> <values> <value>UTC</value> <value>Europe/Moscow</value> <value>Asia/Kolkata</value> </values> </substitution> <substitution> <name>binary_function</name> <values> <value>lessOrEquals</value> <value>less</value> <value>greater</value> <value>greaterOrEquals</value> <value>equals</value> <value>notEquals</value> <value>plus</value> <value>minus</value> <value>addDays</value> <value>addHours</value> <value>addMinutes</value> <value>addMonths</value> <value>addQuarters</value> <value>addSeconds</value> <value>addWeeks</value> <value>addYears</value> <value>subtractDays</value> <value>subtractHours</value> <value>subtractMinutes</value> <value>subtractMonths</value> <value>subtractQuarters</value> <value>subtractSeconds</value> <value>subtractWeeks</value> <value>subtractYears</value> </values> </substitution> </substitutions> <query>SELECT count() FROM numbers(10000000) WHERE NOT ignore(toDateTime('2017-01-01 00:00:00') + number % 100000000 + rand() % 100000 AS t, {datetime_transform}(t, '{time_zone}'))</query> <query>SELECT count() FROM numbers(10000000) WHERE NOT ignore(toDate('2017-01-01') + number % 1000 + rand() % 10 AS t, {date_transform}(t))</query> <query>SELECT count() FROM numbers(10000000) WHERE NOT ignore(toDateTime('2017-01-01 00:00:00') + number % 100000000 + rand() % 100000 AS t, {binary_function}(t, 1))</query> <query>SELECT count() FROM numbers(10000000) WHERE NOT ignore(toDateTime('2017-01-01 00:00:00') + number % 100000000 + rand() % 100000 AS t, toStartOfInterval(t, INTERVAL 1 month))</query> </test>