bizarre. J'ai copié votre code, supprimé les commentaires et supprimé l'ajout à la date, et tout se passe bien pour les deux.
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