Je suis récemment tombé sur ceci :
SELECT
'Y',
ltrim(rtrim(upper(Newly_Eligible)))
FROM Table
WHERE
Id = 1
AND
(Convert(datetime, Convert(varchar, GETDATE(),103),103)
BETWEEN
Convert(datetime,Convert(varchar, [Start_Date],103),103)
AND
Convert(datetime, Convert(varchar, [End_Date] ,103),103))
Start_Date
, End_Date
et évidemment GETDATE()
sont tous datetime
types. Pourquoi fait-il un cast vers un varchar et ensuite de nouveau vers un varchar ?