Als u een op tekenreeksen gebaseerde datumnotatie moet gebruiken, moet u er een kiezen die veilig is en werkt in elke SQL Server-instantie, ongeacht de datumnotatie, taal en landinstellingen.
Dat formaat staat bekend als ISO-8601 formaat en het is ofwel
YYYYMMDD (note: **NO** dashes!)
of
YYYY-MM-DDTHH:MM:SSS
voor een DATETIME
kolom.
Dus in plaats van
Convert(datetime, '28/11/2012', 103)
je zou moeten gebruiken
CAST('20121128' AS DATETIME)
en dan zou het goed moeten komen.
Als u SQL Server 2008 gebruikt - je zou ook kunnen kijken naar het gebruik van DATE
(in plaats van DATETIME
) voor gevallen waarin u alleen de datum nodig heeft (geen tijdgedeelte). Dat zou nog eenvoudiger zijn dan DATETIME
. te gebruiken en het tijdsgedeelte altijd 00:00:00
. hebben