```
SELECT x
FROM
(
    SELECT if((number % NULL) = -2147483648, NULL, if(toInt64(toInt64(now64(if((number % NULL) = -2147483648, NULL, if(toInt64(now64(toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))) = (number % NULL), nan, toFloat64(number))), toInt64(9223372036854775807, toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))), now64(toInt64(9223372036854775807, toInt64(0, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))) = (number % NULL), nan, toFloat64(number))) AS x
    FROM system.numbers
    LIMIT 3
)
ORDER BY x DESC NULLS LAST

Query id: d38af640-03bb-47ec-9ad0-144373bf6ac4


0 rows in set. Elapsed: 0.011 sec. 

Received exception from server (version 21.11.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Cannot capture 3 columns because function now64 has 0 arguments.: while executing 'FUNCTION now64(if(equals(modulo(number, NULL), -2147483648), NULL, if(equals(toInt64(now64(toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))), modulo(number, NULL)), nan, toFloat64(number))) :: 2, toInt64(9223372036854775807, toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))) :: 6, h3kRing(NULL, NULL) :: 3) -> now64(if(equals(modulo(number, NULL), -2147483648), NULL, if(equals(toInt64(now64(toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))), modulo(number, NULL)), nan, toFloat64(number))), toInt64(9223372036854775807, toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL)) Nullable(Nothing) : 4'. (LOGICAL_ERROR)
```
{
    static constexpr Int32 fractional_scale = 9;
    timespec spec{};
    if (clock_gettime(CLOCK_REALTIME, &spec))
        throwFromErrno("Cannot clock_gettime.", ErrorCodes::CANNOT_CLOCK_GETTIME);
    DecimalUtils::DecimalComponents<DateTime64> components{spec.tv_sec, spec.tv_nsec};
    
    
    
    
    const auto adjust_scale = fractional_scale - static_cast<Int32>(scale);
    if (adjust_scale < 0)
        components.fractional *= intExp10(std::abs(adjust_scale));
    else if (adjust_scale > 0)
        components.fractional /= intExp10(adjust_scale);
    return DecimalField(DecimalUtils::decimalFromComponents<DateTime64>(components, scale),
                        scale);
}
class ExecutableFunctionNow64 : public IExecutableFunction