Hvis du skal bruge et strengbaseret datoformat, bør du vælge et, der er sikkert og fungerer i alle SQL Server-forekomster, uanset datoformat, sprog og regionale indstillinger.
Det format er kendt som ISO-8601 format, og det er enten
YYYYMMDD (note: **NO** dashes!)
eller
YYYY-MM-DDTHH:MM:SSS
for en DATETIME
kolonne.
Så i stedet for
Convert(datetime, '28/11/2012', 103)
du skal bruge
CAST('20121128' AS DATETIME)
og så burde du have det godt.
Hvis du er på SQL Server 2008 - du kan også overveje at bruge DATE
(i stedet for DATETIME
) til tilfælde, hvor du kun har brug for datoen (ingen tidsdel). Det ville være endnu nemmere end at bruge DATETIME
og at tidsdelen altid skal være 00:00:00