In the CEIL function, we only consider nanos when the time unit of MILLISECONDS is used. However, we should consider it for other time units as well. For example, if the time unit is SECONDS and the TIMESTAMP value happens to be at an exact multiple of 1000 milliseconds, then the CEIL should round up, as their will be nano seconds remaining and thus the TIMESTAMP should be rounded up to the next increment.
In the CEIL function, we only consider nanos when the time unit of MILLISECONDS is used. However, we should consider it for other time units as well. For example, if the time unit is SECONDS and the TIMESTAMP value happens to be at an exact multiple of 1000 milliseconds, then the CEIL should round up, as their will be nano seconds remaining and thus the TIMESTAMP should be rounded up to the next increment.