Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
AlexanderVS Member Откуда: Krasnoyarsk Сообщений: 433 |
Старый сервер: Microsoft SQL Server 2005 - 9.00.5057.00 (X64) Mar 25 2011 13:33:31 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) Новый сервер: Microsoft SQL Server 2014 (SP2-CU5) (KB4013098) - 12.0.5546.0 (X64) Apr 3 2017 14:55:37 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor) В одной из переносимых БД, в теле хранимых процедур, используются явно два формата даты: DD.MM.YYYY и YYYYMMDD (на протяжении более 10 лет, кто только не писал и не исправлял эти ХП). На новом сервере, процедуры с датой в виде DD.MM.YYYY, не работают, пока не исправишь на YYYYMMDD. Подскажите, как заставить сервер обрабатывать оба формата? |
29 май 17, 11:44 [20519487] Ответить | Цитировать Сообщить модератору |
iiyama Member Откуда: Сообщений: 642 |
AlexanderVS, Если не хотите исправлять ошибки в коде, то укажите русский в качестве языка |
29 май 17, 11:47 [20519500] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
AlexanderVS, изучить несколько полезных ссылок: https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql https://docs.microsoft.com/en-us/sql/t-sql/statements/set-language-transact-sql https://docs.microsoft.com/en-us/sql/t-sql/statements/set-dateformat-transact-sql |
29 май 17, 11:48 [20519505] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8485 |
Имеется в виду язык подключения к серверу по умолчанию. Или при подключении SET Language = Russian. |
||
29 май 17, 12:15 [20519633] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47061 |
В начале процедуры написатьSET DATEFORMAT DMY; |
29 май 17, 12:16 [20519637] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8485 |
Без = конечно же, = ставится в строке подключения. Но там set не надо писать. |
29 май 17, 12:16 [20519638] Ответить | Цитировать Сообщить модератору |
AlexanderVS Member Откуда: Krasnoyarsk Сообщений: 433 |
Minamoto, полезные ссылки рассказывают про настройки текущей сессии. А вот язык по умолчанию для логина - это да, на старом сервере он для всех логинов - русский, а на новом - английский. Почему то при переносе логинов с сервера на сервер, не обратил внимания, что язык по умолчанию отсутствует. |
29 май 17, 12:46 [20519723] Ответить | Цитировать Сообщить модератору |
AlexanderVS Member Откуда: Krasnoyarsk Сообщений: 433 |
А вот в настройках сервера у обоих экземпляров стоит - English. |
29 май 17, 12:56 [20519761] Ответить | Цитировать Сообщить модератору |
roundabout Member Откуда: Сообщений: 13 |
AlexanderVS, Скажите, определённые даты используются в процедурах, или даты передаются как параметры. Если передаются как параметры то нужно передавать с типом данных не строка, а дата. |
29 май 17, 13:02 [20519786] Ответить | Цитировать Сообщить модератору |
AlexanderVS Member Откуда: Krasnoyarsk Сообщений: 433 |
roundabout, используется оба варианта. В тексте процедур встречаются именно даты в обоих форматах, но это пол беды, т.к. можно пройтись по всем ХП и поправить даты на yyyymmdd. Так же существует приложение (по моему на Дэлфи), из которого даты передаются в качестве параметров в формате dd.mm.yyyy |
29 май 17, 13:16 [20519845] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |