Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/266: Рейтинг темы: голосов - 266, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 36
1

Ошибка преобразования даты или времени из символьной строки

17.06.2015, 19:18. Показов 47993. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На другой версии все работает, SQL Manager 2014 не хочет.
Вот собственно сам кусок кода:
SQL
1
2
3
4
INSERT INTO Заказы (Наименование_заказчика, Адрес, Телефон, Номер_договора, Дата_заключения_договора, Плановая_Поставка, Код_товара)
VALUES ('Звезда','ул. Ангарская',2390904,01,'2012-12-31','2012-12-31',01),
      ('Флаг','ул. Неманская',7432894,02,'2012-12-31','2012-12-31',02),
          ('Правда','ул. Бобруйская',4123464,03,'2012-12-31','2012-12-31',03)
Выбивает:
Сообщение 241, уровень 16, состояние 1, строка 29
Ошибка преобразования даты или времени из символьной строки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2015, 19:18
Ответы с готовыми решениями:

Ошибка преобразования даты или времени из символьной строки
Добрые день. Не могу понять в чем ошибка. Sql Server 2012 select OrderID as 'Order...

Ошибка преобразования даты или времени из символьной строки
Помогите разобраться с датой, это мб из-за того, что месяц стоит первым, а число вторым, и что...

Ошибка преобразования даты или времени из символьной строки
Всем привет. Написал хранимую процедуру, для выборки данных. Проблемы по поиску по дате ALTER...

SQL - Ошибка преобразования даты или времени из символьной строки
Имеется текст запроса, надо вывести на экран список товаров, поставленных поставщиком 1 (ЧП Иванов...

12
4 / 4 / 0
Регистрация: 09.01.2014
Сообщений: 130
17.06.2015, 19:35 2
Может попробовать дату в формате '12/31/2012'?

С уважением, Александр.
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 36
17.06.2015, 19:37  [ТС] 3
alexandrstegnin, нет, не выходит
0
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
17.06.2015, 19:41 4
frisek, а какого типа Дата_заключения_договора ?

чтобы точно работало, используйте iso формат
T-SQL
1
'2010-12-31T00:00:00'
Добавлено через 1 минуту
также можно явно задать нужный формат для сервера
T-SQL
1
2
3
4
5
6
7
SET DATEFORMAT ymd;
GO
 
INSERT INTO Заказы (Наименование_заказчика, Адрес, Телефон, Номер_договора, Дата_заключения_договора, Плановая_Поставка, Код_товара)
VALUES ('Звезда','ул. Ангарская',2390904,01,'2012-12-31','2012-12-31',01),
      ('Флаг','ул. Неманская',7432894,02,'2012-12-31','2012-12-31',02),
          ('Правда','ул. Бобруйская',4123464,03,'2012-12-31','2012-12-31',03)
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 36
17.06.2015, 19:44  [ТС] 5
Metall_Version, не выходит все равно.
Вот ещё кусок кода:
SQL
1
2
3
4
5
6
7
8
9
CREATE TABLE Заказы
(Код_заказа INT NOT NULL IDENTITY (1,1) PRIMARY KEY, 
Наименование_заказчика VARCHAR(50) NOT NULL, 
Адрес VARCHAR(50) NOT NULL,
Телефон INT NOT NULL UNIQUE,
Номер_договора INT NOT NULL UNIQUE,
Дата_заключения_договора DATE NOT NULL,
Плановая_поставка DATE NOT NULL CHECK(Плановая_поставка = 'Да' OR Плановая_поставка = 'Нет'),
Код_товара INT NOT NULL FOREIGN KEY REFERENCES Товар(Код_товара))
0
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
17.06.2015, 19:45 6
Если требуется только дата, то строка вида
T-SQL
1
'20121231'
интерпретируется всегда правильно безотносительно региональных настроек.

Если требуется дата и время, то при совпадении часового пояса источника данных с часовым поясом сервера строка вида
T-SQL
1
'20121231 19:39:51.217'
так же правильно воспринимается сервером.
0
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
17.06.2015, 19:50 7
frisek, frisek, ну естественно
как это вообще должно работать ? check уберите
T-SQL
1
2
3
4
5
6
7
8
9
CREATE TABLE Заказы
(Код_заказа INT NOT NULL IDENTITY (1,1) PRIMARY KEY, 
Наименование_заказчика VARCHAR(50) NOT NULL, 
Адрес VARCHAR(50) NOT NULL,
Телефон INT NOT NULL UNIQUE,
Номер_договора INT NOT NULL UNIQUE,
Дата_заключения_договора DATE NOT NULL,
Плановая_поставка DATE NOT NULL,
Код_товара INT NOT NULL FOREIGN KEY REFERENCES Товар(Код_товара))
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 36
17.06.2015, 19:57  [ТС] 8
Metall_Version, я пробовал и без его, и с ним. Пробовал также все ваши варианты, ничего не выходит.
0
4 / 4 / 0
Регистрация: 09.01.2014
Сообщений: 130
17.06.2015, 20:08 9
Если все форматы перепробовали, может тогда текущую дату попробовать записать?
Что-то типа:
SQL
1
CONVERT(DATE, GETDATE())
Может тут станет понятно, какой формат использовать.

С уважением, Александр.
0
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
17.06.2015, 20:21 10
frisek, я вам сказал как будет работать 100% ибо проблема в этом
не знаю как вы пробовали, но нужно пересоздать таблицу, check полностью удалить, его смысл вообще не понятен там
0
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
17.06.2015, 22:11 11
Цитата Сообщение от alexandrstegnin Посмотреть сообщение
Может тут станет понятно, какой формат использовать.
Это будет работать до изменения региональных настроек сервера. Это может не сработать при переносе на сервер с другими региональными настройками.
0
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 6
17.06.2015, 22:52 12
Добрый день!
Попробуйте не брать в одинарные кавычки даты, при вставки их в таблицу
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,270
18.06.2015, 10:25 13
Цитата Сообщение от invisibleman91 Посмотреть сообщение
Попробуйте не брать в одинарные кавычки даты, при вставки их в таблицу
Совет эксперта!

1. Для типа DATE строка '2012-12-31' абсолютно корректна во всех случаях без исключений (в отличие от типа DATETIME)
2. Строки 'Да' и 'Нет' не могут быть преобразованы в дату ни при каких обстоятельствах! Ни одним сервером!
3. Плановая_поставка - типа DATE. Вы действительно туда пытаетесь вставить дату? Или ошиблись с типом поля?
0
18.06.2015, 10:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2015, 10:25
Помогаю со студенческими работами здесь

Сохранение DataTable и ошибка преобразования даты или времени из символьной строки
Здравствуйте. Пытаюсь использовать такой код, для переноса моего DataTable в базу данных sql...

Ошибка преобразования даты или времени из символьной строки при добавлении записей в БД
Здравствуйте! Столкнулся с казалось бы простой проблемой, но вот уже несколько часов, не могу ее...

Ошибка преобразования datetime из символьной строки
Добрый день. Есть база данных состоящая из 4 таблиц, созданная в MS SQL. В Delphi строю запрос, где...

Преобразования символьной строки в выражение
Нужно написать программу, которая будет считывать введенную строку символов, делать из сроки...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru