Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом / 6 сообщений из 6, страница 1 из 1
16.10.2019, 09:13
    #39876861
rumka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом
Всем здрасти.
Есть простая конвертация в дату
Код: sql
1.
select convert(datetime,convert(varchar(10),getdate(),101))


Все хорошо работает на одном сервере. Поставили на другой и на нем эта же самая конвертация отваливается с ошибкой в sql manager.
Код: sql
1.
2.
Msg 242, Level 16, State 3, Line 11
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.


На обоих серверах стоит SQL Server 2008 R2 Express, региональные настройки по дате в винде одинаковые.
Если выставить 104 формат,то все работает на обоих серверах.
В чем проблема?
...
Рейтинг: 0 / 0
16.10.2019, 09:28
    #39876872
Тяп-ляп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом
Сравни результаты выполнения на серверах:
Код: sql
1.
dbcc useroptions


обрати внимание на dateformat в результатах
...
Рейтинг: 0 / 0
16.10.2019, 09:31
    #39876875
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом
rumkaВсем здрасти.
Есть простая конвертация в дату
Код: sql
1.
select convert(datetime,convert(varchar(10),getdate(),101))



Все хорошо работает на одном сервере. Поставили на другой и на нем эта же самая конвертация отваливается с ошибкой в sql manager.
Код: sql
1.
2.
Msg 242, Level 16, State 3, Line 11
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.



На обоих серверах стоит SQL Server 2008 R2 Express, региональные настройки по дате в винде одинаковые.
Если выставить 104 формат,то все работает на обоих серверах.
В чем проблема?Пользуйтесь 112 или 126 стилем CONVERT().
И почему вы во внешнем CONVERTе не задаёте стиль? Тем самым используете стиль 0.
Он зависит от @@LANGUAGE и @@DATEFORMAT.
...
Рейтинг: 0 / 0
16.10.2019, 09:47
    #39876887
rumka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом
Спасибо всем.
Указание во внешнем Convert нужного стиля решает проблему.
Языки на серверах разные.
...
Рейтинг: 0 / 0
16.10.2019, 09:52
    #39876890
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом
К примеру, что даст вот этот запрос в одной базе и в другой?
Код: sql
1.
2.
SELECT STUFF(STUFF(STUFF('___',F%10,1,'D'),F/100%10,1,'M'),F/10000,1,'Y')
FROM (SELECT CONVERT(CHAR, CAST('1/2/3' AS DATETIME),12)) D(F)
...
Рейтинг: 0 / 0
16.10.2019, 12:10
    #39876989
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом
rumka,

если вы не можете изменить передаваемую строку в соответствии с ISO ГГГГММДД, то указывайте явно контекст языка, в котором должно выполняться преобразование даты: SET LANGUAGE ... (обязательно прочтите справку).
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Одно и тоже преобразование в дату работает на одном сервере,но выдает ошибку на другом / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]