3 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 7
1

Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона

03.06.2017, 15:57. Показов 105075. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема:При открытии базы данных mssql происходит ошибка :Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.
Предистория: Начали в колледже проходить mssql и c#,решил продолжить дома,скопировал инсталлятор с ПК колледжа и поставил дома,в колледже все работало,здесь же при открытии файла базы данных Mssql и после выполнения выскакивает вот такая вот ошибка,помогите ламеру)
Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2017, 15:57
Ответы с готовыми решениями:

Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона
Здравствуйте. помогите пожалуйста. что может привести к этой ошибке(ошибка в заголовке темы)? ...

"Преобразование типа данных VARCHAR в тип данных smalldatetime привело к выходу значения за пределы диапазона"
пытаюсь запросом установить дату но выдает ошибку Сообщение 242, уровень 16, состояние 3,...

Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона
public Form_List(string a) { str = a; InitializeComponent(); ...

Ошибка "Преобразование значения типа varchar привело к переполнению столбца типа int" ?
Проблемы с SQL Server Создал таблицу: use LivlagsBar go IF EXISTS (SELECT name FROM...

13
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
03.06.2017, 16:18 2
ну показали бы хоть строку скрипта, на которой ошибка происходит
0
1109 / 754 / 182
Регистрация: 27.11.2009
Сообщений: 2,249
03.06.2017, 16:32 3
Цитата Сообщение от YuryK Посмотреть сообщение
ну показали бы хоть строку скрипта, на которой ошибка происходит
И строку, содержащую дату, которая не конвертируется.
0
3 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 7
03.06.2017, 19:30  [ТС] 4
Цитата Сообщение от YuryK Посмотреть сообщение
ну показали бы хоть строку скрипта, на которой ошибка происходит
SQL
1
INSERT [Registration] ([RegistrationId], [RunnerId], [RegistrationDateTime], [RaceKitOptionId], [RegistrationStatusId], [Cost], [CharityId], [SponsorshipTarget]) VALUES (4039, 3129, CAST(N'2015-06-24 07:36:20.000' AS DateTime), N'B', 3, CAST(20.00 AS DECIMAL(10, 2)), 7, CAST(100.00 AS DECIMAL(10, 2)));
И это не одна строчка,их много,но везде где есть дата,вот такая вот ошибка.
0
3330 / 2035 / 727
Регистрация: 02.06.2013
Сообщений: 5,010
03.06.2017, 22:10 5
Вместо
T-SQL
1
CAST(N'2015-06-24 07:36:20.000' AS DateTime)
написать
T-SQL
1
'20150624 07:36:20'
или
T-SQL
1
'2015-06-24T07:36:20'
1
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
03.06.2017, 22:40 6
Цитата Сообщение от msdn
Начиная с версии SQL Server 2012, единственные стили, которые поддерживаются при преобразовании из даты и времени с типами datetimeoffset 0 или 1. Все другие стили преобразования возвращают ошибку 9809.
на 2005 первоначальная конвертация (как у ТС) работает без ошибок. Похоже, что в колледже версия сервера ниже 2012, а дома - нет
1
3 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 7
04.06.2017, 02:56  [ТС] 7
У меня около 100 строчек этого кода(

Добавлено через 1 минуту
Я говорю,инсталлятор с колледжа взял.Я поискал по гуглу,типо не совпадает формат даты,там идет гггг/мм/дд,а на компьютере дд/мм/гггг
И поэтому как-то надо поменять формат,я не знаю как.

Добавлено через 1 минуту
Цитата Сообщение от invm Посмотреть сообщение
Вместо
T-SQLВыделить код
1
CAST(N'2015-06-24 07:36:20.000' AS DateTime)
написать
T-SQLВыделить код
1
'20150624 07:36:20'
или
T-SQLВыделить код
1
'2015-06-24T07:36:20'
Цитата Сообщение от invm Посмотреть сообщение
Вместо
T-SQLВыделить код
1
CAST(N'2015-06-24 07:36:20.000' AS DateTime)
написать
T-SQLВыделить код
1
'20150624 07:36:20'
или
T-SQLВыделить код
1
'2015-06-24T07:36:20'
у меня около 100 строчек таких(
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
04.06.2017, 02:59 8
тогда сервер поставьте ниже 2012-го

Добавлено через 2 минуты
заменить
07:
( с пробелов впереди)
на
T07:
максимум 24 раза сделать нужно будет
0
3330 / 2035 / 727
Регистрация: 02.06.2013
Сообщений: 5,010
04.06.2017, 12:33 9
Лучший ответ Сообщение было отмечено lowwro как решение

Решение

Цитата Сообщение от lowwro Посмотреть сообщение
У меня около 100 строчек этого кода(
Ну если так лень исправлять, добавьте в начало скрипта
T-SQL
1
set language english;
5
3 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 7
04.06.2017, 14:16  [ТС] 10
Цитата Сообщение от invm Посмотреть сообщение
Ну если так лень исправлять, добавьте в начало скрипта
T-SQLВыделить код
1
set language english;
Оказывается такое легкое решение,спасибо тебе)Реально,вот большое спасибо!
2
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 3
03.09.2021, 12:04 11
Я конечно запоздал с ответом, возможно новичкам пригодится. В поиске Яндекса данная тема вторая по списку.
Например если на сервере установлен Русский язык то попытка такого запроса приведет к ошибке:
T-SQL
1
2
3
4
INSERT INTO TestTable
([RegistrationDate])
VALUES
('08/15/2011')
Можно добавить в начало скрипта:
SET DATEFORMAT шаблон
Шаблон может быть - ymd, mdy, dmy
Пример:
T-SQL
1
2
3
4
5
6
SET DATEFORMAT mdy
GO
INSERT INTO TestTable
([RegistrationDate])
VALUES
('08/15/2011')
0
Рожденная для битвы
287 / 67 / 12
Регистрация: 08.11.2009
Сообщений: 1,247
25.08.2022, 14:20 12
А как нормально присвоить столбцу значение даты?
Oracle 11 SQL
1
2
3
4
5
UPDATE dbo 
SET
 dr = CONVERT(DATETIME, age, 120)
FROM
dbo WHERE e IS NULL
Аналогичная ошибка.
0
1619 / 1096 / 241
Регистрация: 14.08.2018
Сообщений: 3,604
Записей в блоге: 4
25.08.2022, 17:40 13
Цитата Сообщение от marina2 Посмотреть сообщение
А как нормально присвоить столбцу значение даты?
T-SQL
1
2
3
4
5
6
7
-- Если сервер не на русской локали
SET LANGUAGE russian
 
UPDATE MyTable
SET DateField = N'25.08.2022'
 
SET LANGUAGE english
0
278 / 169 / 86
Регистрация: 12.04.2022
Сообщений: 690
26.08.2022, 10:48 14
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
-- Если сервер не на русской локали

T-SQL
1
2
UPDATE MyTable
SET DateField = '20220825'
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2022, 10:48
Помогаю со студенческими работами здесь

Тип данных nvarchar(50) в numeric (18.2)
Конвертирование nvarchar(50) в numeric (18.2) Подскажите как сделать конвертирование данных?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru