В основном, произошло то, что вы указали неверный тип данных для первого параметра функции LEFT. Убедитесь, что вы преобразовали тип данных text как varchar или nvarchar, тогда ваш запрос определенно работает. Вот пример, который я протестировал в SQL Server 2005
Create table #Customer
(
firstName varchar(30)
,lastName varchar(30)
,testimonial text
,testimonialDate DateTime
)
GO
INSERT INTO #Customer (firstName, lastName, testimonial, testimonialDate ) VALUES('Jonhn', 'Smith', 'we really really like your product and blaha ......', getDate())
GO
INSERT INTO #Customer (firstName, lastName, testimonial , testimonialDate) VALUES('Mary', 'Toe', 'we really really like your product and blaha ......', getDate() - 3)
GO
INSERT INTO #Customer (firstName, lastName, testimonial , testimonialDate) VALUES('Amanda', 'Palin', 'we really really like your product and blaha ......', getDate() -2 )
GO
SELECT TOP 3 C.FirstName + ' ' + C.LastName AS CustomerName ,LEFT( CAST(C.Testimonial as varchar(50)),50) AS TestimonialSnippet ,C.TestimonialDate FROM #Customer AS C ORDER BY C.TestimonialDate DESC
GO
Drop table #Customer
GO