Я бы предложил немного другой подход, избегая немного более дорогого преобразования в строку и используя немного меньший тип данных для хранения даты (так как вам не требуется субминутная детализация, если вы заботитесь только о границах дня):
DECLARE @dt SMALLDATETIME;
SET @dt = DATEADD(DAY, DATEDIFF(DAY, '19000101', CURRENT_TIMESTAMP), '19000101'); --*
SELECT COUNT(*) FROM dbo.pandl
WHERE PaymentDate >= @dt;
Если вы собираетесь продолжать использовать преобразование в строку, используйте CHAR(10)
- я не думаю, что стиль 121 будет производить какие-либо форматы дат, требующие поддержки Unicode.
*
да, вы можете сделать это без внешнего DATEADD
, но не с новыми типами, такими как DATE