strano. ho copiato il tuo codice, rimosso i commenti e rimosso l'aggiunta alla data, e va bene su entrambi.
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