Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с форматом даты при переходе на новый сервер  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
iiyama
Member

Откуда:
Сообщений: 642
AlexanderVS,

Если не хотите исправлять ошибки в коде, то укажите русский в качестве языка
29 май 17, 11:47    [20519500]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7687
iiyama
AlexanderVS,

Если не хотите исправлять ошибки в коде, то укажите русский в качестве языка


Имеется в виду язык подключения к серверу по умолчанию. Или при подключении SET Language = Russian.
29 май 17, 12:15    [20519633]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
В начале процедуры написать
SET DATEFORMAT DMY;
29 май 17, 12:16    [20519637]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7687
Без = конечно же, = ставится в строке подключения. Но там set не надо писать.
29 май 17, 12:16    [20519638]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
Minamoto, полезные ссылки рассказывают про настройки текущей сессии.
А вот язык по умолчанию для логина - это да, на старом сервере он для всех логинов - русский, а на новом - английский.
Почему то при переносе логинов с сервера на сервер, не обратил внимания, что язык по умолчанию отсутствует.
29 май 17, 12:46    [20519723]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
А вот в настройках сервера у обоих экземпляров стоит - English.
29 май 17, 12:56    [20519761]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
roundabout
Member

Откуда:
Сообщений: 13
AlexanderVS,
Скажите, определённые даты используются в процедурах, или даты передаются как параметры.
Если передаются как параметры то нужно передавать с типом данных не строка, а дата.
29 май 17, 13:02    [20519786]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом даты при переходе на новый сервер  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
roundabout, используется оба варианта.
В тексте процедур встречаются именно даты в обоих форматах, но это пол беды, т.к. можно пройтись по всем ХП и поправить даты на yyyymmdd.
Так же существует приложение (по моему на Дэлфи), из которого даты передаются в качестве параметров в формате dd.mm.yyyy
29 май 17, 13:16    [20519845]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить