Ако трябва да използвате базиран на низ формат за дата, трябва да изберете такъв, който е безопасен и работи във всеки екземпляр на SQL Server, независимо от формата на датата, езика и регионалните настройки.
Този формат е известен като ISO-8601 формат и е или
YYYYMMDD (note: **NO** dashes!)
или
YYYY-MM-DDTHH:MM:SSS
за DATETIME
колона.
Така че вместо
Convert(datetime, '28/11/2012', 103)
трябва да използвате
CAST('20121128' AS DATETIME)
и тогава трябва да си добре.
Ако използвате SQL Server 2008 - можете също да разгледате използването на DATE
(вместо DATETIME
) за случаите, когато се нуждаете само от датата (без част от времето). Това би било дори по-лесно, отколкото да използвате DATETIME
и времевата част винаги да е 00:00:00