Вы используете CASTing к time(0)
для своего заказа, который округляет (усекает?) Время до второй точности.Он работает точно так, как рекламируется ...
Редактировать:
Нет смысла иметь одинаковые PARTITION BY и ORDER BY ...
Я думаю, что выпытаемся разделить по секундам и хотим, чтобы номера строк в этом интервале
Попробуйте:
ROW_NUMBER() OVER(
PARTITION BY [Date], CAST([Time] AS Time(0))
ORDER BY [DATE], [Time]
) RN
Если вы получаете дубликаты номеров строк, пересекающих границу 0,5 секунды, используйте это для принудительного усеченияа не КРУГЛЫЙ
ROW_NUMBER() OVER(
PARTITION BY [Date], CAST([Time] - '00:00:00.5000' AS Time(0))
ORDER BY [DATE], [Time]
) RN