Pokud musíte použít formát data založený na řetězcích, měli byste vybrat takový, který je bezpečný a funguje v každé instanci SQL Server, bez ohledu na formát data, jazyk a místní nastavení.
Tento formát je známý jako ISO-8601 formát a je to buď
YYYYMMDD (note: **NO** dashes!)
nebo
YYYY-MM-DDTHH:MM:SSS
pro DATETIME
sloupec.
Takže místo
Convert(datetime, '28/11/2012', 103)
měli byste použít
CAST('20121128' AS DATETIME)
a pak by ti mělo být dobře.
Pokud používáte SQL Server 2008 - můžete se také podívat na DATE
(místo DATETIME
) pro případy, kdy potřebujete pouze datum (bez časové části). Bylo by to ještě jednodušší než použití DATETIME
a časová část je vždy 00:00:00