podivný. Zkopíroval jsem váš kód, odstranil jsem komentáře a odstranil dodatek k datu a na obou to vychází dobře.
BEGIN TRAN
CREATE TABLE t (d DATETIME NOT NULL)
INSERT INTO t VALUES (GETDATE())
SELECT (CONVERT(VARCHAR(50),CONVERT(DATE, d)))
FROM t
SELECT TOP 1 (CONVERT(VARCHAR(50),CONVERT(DATE, d)))
FROM t
ROLLBACK