Om du måste använda ett strängbaserat datumformat bör du välja ett som är säkert och fungerar i alla SQL Server-instanser, oavsett datumformat, språk och regionala inställningar.
Det formatet är känt som ISO-8601 format och det är antingen
YYYYMMDD (note: **NO** dashes!)
eller
YYYY-MM-DDTHH:MM:SSS
för en DATETIME
kolumn.
Så istället för
Convert(datetime, '28/11/2012', 103)
du bör använda
CAST('20121128' AS DATETIME)
och då borde du må bra.
Om du använder SQL Server 2008 - Du kan också titta på hur du använder DATE
(istället för DATETIME
) för fall då du bara behöver datumet (ingen tidsdel). Det skulle vara ännu enklare än att använda DATETIME
och att alltid ha tidsdelen 00:00:00