Не работает процедура

marvel
Дата: 26.01.2009 12:04:21
DECLARE 	@SUM MONEY,
				@OCOUNT INT,
				@SCOUNT INT
		
		SET DATEFORMAT DMY;  EXEC CL27.DB.DBO.GET_FINANCE_DATA '01.01.2009','13.01.2009', 
			0, @SUM OUT, @OCOUNT OUT, @SCOUNT OUT

Вылетает ошибка - Error converting data type varchar to datetime.
Если я заменяю '13.01.2009' на '12.01.2009' то работает
CL27 - подлинкованный sql server 2000
tpg
Дата: 26.01.2009 12:06:26
Glory
Дата: 26.01.2009 12:06:57
SET DATEFORMAT DMY - влияет на конвертацию строки в дату в коннекте к локальному серверу.
На коннект к линикованному серверу - не влияет
alexeyvg
Дата: 26.01.2009 12:07:08
marvel
Вылетает ошибка - Error converting data type varchar to datetime.
Используйте явную конвертацию, см ф-цию CONVERT

marvel
Если я заменяю '13.01.2009' на '12.01.2009' то работает
Ну конечно - ведь 1-го декабря существует, и всё работает, а 13-й месяц - это что-то для сервера непонятное :-)
vino
Дата: 26.01.2009 12:07:09
marvel,
используй дату в универсальном формате 20090113 и все будет хорошо
а вообще, почитай faq http://www.sql.ru/faq/faq_topic.aspx?fid=109
marvel
Дата: 26.01.2009 12:22:48
vino
marvel,
используй дату в универсальном формате 20090113 и все будет хорошо
а вообще, почитай faq http://www.sql.ru/faq/faq_topic.aspx?fid=109



я не понял только как мне преобразровать SELECT DAY('13.01.2009') в вид 20090113?
проходящий.
Дата: 26.01.2009 12:24:18
marvel
vino
marvel,
используй дату в универсальном формате 20090113 и все будет хорошо
а вообще, почитай faq http://www.sql.ru/faq/faq_topic.aspx?fid=109



я не понял только как мне преобразровать SELECT DAY('13.01.2009') в вид 20090113?

Неужто так трудно?
SELECT DAY('20090113')
marvel
Дата: 26.01.2009 12:25:44
проходящий.,

просто но то как минимум 6 функции, в том числе и case, наверняка есть уже хаготовленная
vino
Дата: 26.01.2009 12:34:55
marvel, у вас был вопрос о проблеме, вам объяснили, что это связано с разными форматами дат, которые не всегда фиксировать, отсюда и совет использовать универсальный формат. Второй вопрос надо сформулировать корректно, точнее, объясните, - где формируются константы типа '13.01.2009' и в чем сложность привести константы к универсальному формату? Тогда будет понятно, что еще можно посоветовать
Glory
Дата: 26.01.2009 12:37:35
marvel
проходящий.,

просто но то как минимум 6 функции, в том числе и case, наверняка есть уже хаготовленная

Какие 6 ? Два вложенных CONVERT