Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Amateur7
Member

Откуда:
Сообщений: 266
USE table
INSERT INTO ExPROG_ad
 (idn, 
 id_group, 
 id_subgroup, 
 firm, contact, 
 address, 
 phone, 
 website, 
 email, 
 amount, 
 placement_period, 
 temp_placement_period, 
 color, temp_color, 
 first, 
 temp_first, 
 date_start, 
 date_end, 
 status, 
 code_verification, 
 date_user_add, 
 name, 
 about, 
 cost) 
 VALUES (
 '56742807', 
 '1', 
 '392', 
 'test', 
 'test', 
 'testtest', 
 '24324', 
 'test', 
 'test@itemssale.com', 
 '900', 
 '2', 
 '', 
 'yes', 
 '', 
 'yes', 
 '', 
 '2012-07-19 18:59:00', 
 '2012-07-19 18:59:00', 
 'check_email', 
 '99658525', 
 '2012-07-19 18:59:00', 
 'test', 
 'test', 
 'testtest');


date_start,date_end,date_user_add имеют тип поля datetime

получаю ошибку

[color=red]Msg 241, Level 16, State 1, Line 2
Conversion failed when converting date and/or time from character string.[/color]


Подскажите как правильно записать дату и время в поле с типом datetime?

И еще подскажите как правильно выполнит этот же запрос для полей с типом datetime2?
11 янв 13, 14:50    [13754340]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
'20120719 18:59:00'
11 янв 13, 14:55    [13754404]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Amateur7
Member

Откуда:
Сообщений: 266
Не помогло(

INSERT INTO table
(idn, id_group, id_subgroup, firm, contact, address, phone, website, email, amount, placement_period, temp_placement_period, 
color, temp_color, first, temp_first, date_start, date_end, status, code_verification, date_user_add, name, about, cost) 
VALUES 
('52335243', '1', '392', 'test', 'test', 'testtest', '24324', 'test', 'test@test.com', '900', '2', '', 
'yes', '', 'yes', '', '', '', 'check_email', '14080300', '20130111 15:08:37', 'test', 'test', 'testtest')


Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.


В чем причина?
11 янв 13, 15:11    [13754555]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Amateur7
Не помогло(

[src]

В чем причина?

Быть внимательным ибо для колонки date_start херню передаёте
11 янв 13, 15:16    [13754597]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Ken@t
Быть внимательным ибо для колонки date_start херню передаёте

Да вроде всё ОК:
declare @t table (date_start datetime, date_end datetime);
insert @t values ('', '');
select * from @t;


Amateur7,

выложите скрипт создания вашей таблицы.
11 янв 13, 15:23    [13754666]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
Гость333,
да он значение не туда гонит
11 янв 13, 15:24    [13754688]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Amateur7
Не помогло(

INSERT INTO table
(idn, id_group, id_subgroup, firm, contact, address, phone, website, email, amount, placement_period, temp_placement_period, 
color, temp_color, first, temp_first, date_start, date_end, status, code_verification, date_user_add, name, about, cost) 
VALUES 
('52335243', '1', '392', 'test', 'test', 'testtest', '24324', 'test', 'test@test.com', '900', '2', '', 
'yes', '', 'yes', '', '', '', 'check_email', '14080300', '20130111 15:08:37', 'test', 'test', 'testtest')


Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.


В чем причина?
'' - это какая дата, интересно?
Хоть бы NULL вставляли что ли...
11 янв 13, 15:25    [13754693]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
iap,
дата конца света
11 янв 13, 15:28    [13754737]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
ZVER-10
iap,
дата конца света
SELECT CAST('' AS DATETIME)
Возвращает '19000101' вообще-то.
Ну так, может, явное преобразование типа попробовать?
11 янв 13, 15:34    [13754806]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
iap,
неявно тоже преобразует в '1900-01-01 00:00:00.000'
11 янв 13, 15:38    [13754843]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Amateur7
Member

Откуда:
Сообщений: 266
ZVER-10
Гость333,
да он значение не туда гонит

Вы не правы...

iap
Хоть бы NULL вставляли что ли...


тоже самое, и Null и 0 и вообще разве автоматом не должны нули поставляться если значение пустое?
Точно не знаю правила по MSSQL, но если не ошибаюсь то в MySQl если значение пустое, то дата вставляется 0000-00-00 00:00:00 или пустое значение просто(точно не помню)


Гость333
Amateur7,

выложите скрипт создания вашей таблицы.


конечно:

USE [table]
GO

/****** Object:  Table [dbo].[ExPROG_ad]    Script Date: 01/11/2013 15:36:39 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[ExPROG_ad](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[idn] [int] NULL,
	[id_group] [int] NULL,
	[id_subgroup] [int] NULL,
	[firm] [varchar](200) NULL,
	[contact] [varchar](200) NULL,
	[address] [varchar](200) NULL,
	[phone] [varchar](50) NULL,
	[website] [varchar](50) NULL,
	[email] [varchar](50) NULL,
	[amount] [float] NULL,
	[placement_period] [datetime] NULL,
	[temp_placement_period] [datetime] NULL,
	[color] [varchar](50) NULL,
	[temp_color] [varchar](50) NULL,
	[first] [varchar](50) NULL,
	[temp_first] [varchar](50) NULL,
	[date_start] [varchar](50) NULL,
	[date_end] [varchar](50) NULL,
	[status] [varchar](50) NULL,
	[code_verification] [varchar](100) NULL,
	[date_user_add] [datetime] NULL,
	[name] [varchar](300) NULL,
	[about] [varchar](3000) NULL,
	[cost] [float] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO
11 янв 13, 15:39    [13754855]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
[date_start] [varchar](50) NULL,
[date_end] [varchar](50) NULL,


где там у вас тип datetime ?
11 янв 13, 15:43    [13754897]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
Amateur7
ZVER-10
Гость333,
да он значение не туда гонит

Вы не правы...

placement_period='2'
11 янв 13, 15:44    [13754910]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Гость333
Member

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

Вы в поле placement_period пытаетесь записать значение '2'. Оно не конвертируется к типу datetime.
11 янв 13, 15:45    [13754919]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Гость333
Member

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

Да и в поле cost с типом float у вас вряд ли получится записать 'testtest'.
11 янв 13, 15:47    [13754945]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
Konst_One,
вот у него datetime:
[placement_period] [datetime] NULL,
	[temp_placement_period] [datetime] NULL,

причем placement_period='2'
11 янв 13, 15:48    [13754949]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
Amateur7
date_start,date_end,date_user_add имеют тип поля datetime

получаю ошибку



я на это отвечал. а так у него кривой insert с несоответствием полей
11 янв 13, 15:49    [13754967]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Amateur7
Member

Откуда:
Сообщений: 266
ZVER-10
Konst_One,
вот у него datetime:
[placement_period] [datetime] NULL,
	[temp_placement_period] [datetime] NULL,

причем placement_period='2'



вообще то используется [date_user_add] [datetime]
11 янв 13, 15:49    [13754972]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
Гость333
Amateur7,

Да и в поле cost с типом float у вас вряд ли получится записать 'testtest'.
как не получится? ведь 'testtest'=1657.2345
11 янв 13, 15:50    [13754977]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ZVER-10,

11 янв 13, 15:51    [13754986]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Amateur7
Member

Откуда:
Сообщений: 266
Правильная таблица будет такая

USE [table]
GO

/****** Object:  Table [dbo].[ExPROG_ad]    Script Date: 01/11/2013 15:36:39 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[ExPROG_ad](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[idn] [int] NULL,
	[id_group] [int] NULL,
	[id_subgroup] [int] NULL,
	[firm] [varchar](200) NULL,
	[contact] [varchar](200) NULL,
	[address] [varchar](200) NULL,
	[phone] [varchar](50) NULL,
	[website] [varchar](50) NULL,
	[email] [varchar](50) NULL,
	[amount] [float] NULL,
	[placement_period] [datetime] NULL,
	[temp_placement_period] [datetime] NULL,
	[color] [varchar](50) NULL,
	[temp_color] [varchar](50) NULL,
	[first] [varchar](50) NULL,
	[temp_first] [varchar](50) NULL,
	[date_start] [datetime] NULL,
	[date_end] [datetime] NULL,
	[status] [varchar](50) NULL,
	[code_verification] [varchar](100) NULL,
	[date_user_add] [datetime] NULL,
	[name] [varchar](300) NULL,
	[about] [varchar](3000) NULL,
	[cost] [float] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


Но опять таки запрос

USE table
INSERT INTO ExPROG_ad (idn, id_group, id_subgroup, firm, contact, address, phone, website, email, amount, placement_period, temp_placement_period, color, temp_color, first, temp_first, date_start, date_end, status, code_verification, date_user_add, name, about, cost) 
VALUES ('52335243', '1', '392', 'test', 'test', 'testtest', '24324', 'test', 'test@test.com', '900', '2', '', 'yes', '', 'yes', '', '', '', 'check_email', '14080300', '20130111 15:08:37', 'test', 'test', '500')


возвращает ошибку

Msg 241, Level 16, State 1, Line 2
Conversion failed when converting date and/or time from character string.
11 янв 13, 15:55    [13755020]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
Amateur7
ZVER-10
Konst_One,
вот у него datetime:
[placement_period] [datetime] NULL,
	[temp_placement_period] [datetime] NULL,

причем placement_period='2'



вообще то используется [date_user_add] [datetime]

я понял, но у вас placement_period тоже datetime а вы присвоили значение '2' так нельзя + cost='testtest' так тоже нельзя.
11 янв 13, 15:57    [13755039]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
ZVER-10
Member

Откуда:
Сообщений: 506
Amateur7,
вот так попробуйте:
USE table
INSERT INTO ExPROG_ad (idn, id_group, id_subgroup, firm, contact, address, phone, website, email, amount, placement_period, temp_placement_period, color, temp_color, first, temp_first, date_start, date_end, status, code_verification, date_user_add, name, about, cost) 
VALUES ('52335243', '1', '392', 'test', 'test', 'testtest', '24324', 'test', 'test@test.com', '900', '', '', 'yes', '', 'yes', '', '', '', 'check_email', '14080300', '20130111 15:08:37', 'test', 'test', '500')
11 янв 13, 15:58    [13755057]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при добавлении даты в поле с типом datetime (Conversion failed)  [new]
Amateur7
Member

Откуда:
Сообщений: 266
ZVER-10
Amateur7
пропущено...



вообще то используется [date_user_add] [datetime]

я понял, но у вас placement_period тоже datetime а вы присвоили значение '2' так нельзя + cost='testtest' так тоже нельзя.


теперь разобрался, а то смотрел все в сторону date_user_add, и не видел очевидного( там тип должен был стоять varchat, видимо по инерции поставил datetime...

Спасибо всем за помощь)
11 янв 13, 16:00    [13755082]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить