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

Откуда:
Сообщений: 6
Всех приветствую
бьюсь вот с такой ошибкой при создании процедуры
собственно создаю базу данных
USE [db_authentication_server]
GO
Table [dbo].[log_paradise]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[log_paradise](
[UniqueNumber] [int] IDENTITY(1,1) NOT NULL,
[Date] [datetime] NOT NULL,
[PublicIP] [nchar](20) NULL,
[PrivateIP] [nchar](20) NULL,
[Accept] [tinyint] NULL,
[AcceptComment] [nchar](254) NULL,
[Publisher] [nchar](35) NULL,
[Sender] [nchar](30) NULL,
[CurrentVersion] [nchar](30) NULL,
[LanguageType] [int] NULL,
[TestServer] [tinyint] NULL,
[ListeningPort] [int] NULL,
[ExternalAuthentication] [tinyint] NULL,
[PreServerGroupCnts] [int] NULL,
[EnableGameServerGroupCnts] [int] NULL,
CONSTRAINT [PK_log_access] PRIMARY KEY CLUSTERED
(
[UniqueNumber] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
собственно запрос делаю вот такой
exec dbo.authentication_server_insert_log '127.0.0.1','77.93.103.156',1,1,'ј­№цїЎ °­Б¦ Бѕ·б ён·ЙА» АьґЮЗЯЅАґПґЩ.','Paradise ','Paradise','Mar 30 2014 21:46:20',0,0,15100,0,1,2

вот примерно моя наработки процедуры
USE [atum2_db_autentification_server]
GO

/****** Object: StoredProcedure [dbo].[authentication_server_insert_log] Script Date: 31.03.2014 9:43:20 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[authentication_server_insert_log]

@_Date datetime,
@_PublicIP nchar(20),
@_PrivateIP nchar(20),
@_Accept tinyint,
@_AcceptComment nchar(254),
@_Publisher nchar(35),
@_Sender nchar(30),
@_CurrentVersion nchar(30),
@_LanguageType int ,
@_TestServer tinyint ,
@_ListeningPort int ,
@_ExternalAuthentication tinyint,
@_PreServerGroupCnts int,
@_EnableGameServerGroupCnts int

AS
INSERT INTO atum2_db_autentification_server.dbo.log_paradise

VALUES ( @_PublicIP, @_PrivateIP, @_Accept, @_AcceptComment, @_Publisher, @_Sender, @_CurrentVersion, @_LanguageType, @_LanguageType, @_TestServer, @_ListeningPort, @_ExternalAuthentication, @_PreServerGroupCnts, @_EnableGameServerGroupCnts)


GO
получаю ошибку [Microsoft][ODBC SQL Server Driver][SQL Server]Ошибка при преобразовании типа данных varchar к datetime.
кто поможет разьясните что да как
31 мар 14, 09:57    [15809435]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shrec
кто поможет разьясните что да как

https://www.sql.ru/faq/faq_topic.aspx?fid=109
31 мар 14, 10:03    [15809461]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Shrec,

пишите так:
'2014-03-30T21:46:20.000'
или
'20140330 21:46:20'
31 мар 14, 10:04    [15809466]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Glory
Member

Откуда:
Сообщений: 104760
CREATE PROCEDURE [dbo].[authentication_server_insert_log]
@_Date datetime,

exec dbo.authentication_server_insert_log '127.0.0.1'

Вы считаете, что 127.0.0.1 является датой ?
31 мар 14, 10:05    [15809469]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Glory
CREATE PROCEDURE [dbo].[authentication_server_insert_log]
@_Date datetime,

exec dbo.authentication_server_insert_log '127.0.0.1'

Вы считаете, что 127.0.0.1 является датой ?
А откуда узнали, на каком по порядку месте должна стоять дата?
Ведь в INSERTе нет списка полей!
31 мар 14, 10:09    [15809480]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Shrec
Member

Откуда:
Сообщений: 6
iap,
значит как я правильно понял мне надо выставить переменные в соответсвие с полями запроса,???
31 мар 14, 10:16    [15809511]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Shrec
Member

Откуда:
Сообщений: 6
USE [atum2_db_autentification_server]
GO
/****** Object: StoredProcedure [dbo].[authentication_server_insert_log] Script Date: 31.03.2014 9:38:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[authentication_server_insert_log]

@_PublicIP nchar(20),
@_PrivateIP nchar(20),
@_Accept tinyint,
@_LanguageType int ,
@_AcceptComment nchar(254),
@_Publisher nchar(35),
@_Sender nchar(30),
@_Date datetime,
@_ExternalAuthentication tinyint,
@_TestServer tinyint ,
@_ListeningPort int ,
@_CurrentVersion nchar(30),
@_PreServerGroupCnts int,
@_EnableGameServerGroupCnts int

AS
INSERT INTO atum2_db_autentification_server.dbo.log_aceonline

VALUES ( @_PublicIP, @_PrivateIP, @_Accept, @_LanguageType, @_AcceptComment, @_Publisher, @_Sender, @_Date, @_ExternalAuthentication, @_TestServer, @_ListeningPort, @_CurrentVersion, @_PreServerGroupCnts, @_EnableGameServerGroupCnts)
ответ тот же
Сообщение 8114, уровень 16, состояние 5, процедура authentication_server_insert_log, строка 0
Ошибка при преобразовании типа данных varchar к datetime.
31 мар 14, 10:36    [15809609]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Shrec
iap,
значит как я правильно понял мне надо выставить переменные в соответсвие с полями запроса,???
Для начала хотя бы оформляйте SQL соответствующим тегом.
Я уже глаза сломал.

Явно перечисляйте поля у таблицы в INSERT
и в том же порядке - в VALUES или SELECT.
31 мар 14, 10:36    [15809611]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shrec
Сообщение 8114, уровень 16, состояние 5, процедура authentication_server_insert_log, строка 0
Ошибка при преобразовании типа данных varchar к datetime.

До insert-а дело еще и не дошло
31 мар 14, 10:38    [15809625]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Shrec
Member

Откуда:
Сообщений: 6
хм вроде в запросе все правильно а записать в таблицу не могу
31 мар 14, 10:41    [15809637]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shrec
хм вроде в запросе все правильно а записать в таблицу не могу

Вы не можете правильно запустить процедуру
31 мар 14, 10:41    [15809641]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Shrec
Member

Откуда:
Сообщений: 6
Glory,
поясни
31 мар 14, 10:43    [15809647]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shrec
Glory,
поясни

Читайте ответы выше.
31 мар 14, 10:44    [15809654]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
сервер явно вам предуреждает
Ошибка при преобразовании типа данных varchar к datetime


CREATE PROCEDURE [dbo].[authentication_server_insert_log] 

@_Date datetime,
@_PublicIP nchar(20),
@_PrivateIP nchar(20),
@_Accept tinyint,
@_AcceptComment nchar(254),
@_Publisher nchar(35),
@_Sender nchar(30),
@_CurrentVersion nchar(30),
@_LanguageType int ,
@_TestServer tinyint ,
@_ListeningPort int ,
@_ExternalAuthentication tinyint,
@_PreServerGroupCnts int,
@_EnableGameServerGroupCnts int

AS
INSERT INTO atum2_db_autentification_server.dbo.log_paradise
(
[Date] ,
[PublicIP],
[PrivateIP],
[Accept],
[AcceptComment] ,
[Publisher] ,
[Sender] ,
[CurrentVersion],
[LanguageType] ,
[TestServer] ,
[ListeningPort] ,
[ExternalAuthentication] ,
[PreServerGroupCnts] [int] ,
[EnableGameServerGroupCnts],
)


VALUES (@_Date,@_PublicIP, @_PrivateIP, @_Accept, @_AcceptComment, @_Publisher, @_Sender, @_CurrentVersion, @_LanguageType, @_TestServer, @_ListeningPort, @_ExternalAuthentication, @_PreServerGroupCnts, @_EnableGameServerGroupCnts)




не записали @_Date
и еше 2 раза записали @_LanguageType
31 мар 14, 11:03    [15809787]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Shrec
Member

Откуда:
Сообщений: 6
USE [atum2_db_autentification_server]
GO
/****** Object:  StoredProcedure [dbo].[authentication_server_insert_log]    Script Date: 31.03.2014 11:45:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[authentication_server_insert_log] 
	    
		@_PublicIP nchar(20),
		@_PrivateIP nchar(20),
		@_Accept tinyint,
		@_LanguageType int ,
		@_AcceptComment nchar(254),
		@_Publisher nchar(35),
		@_Sender nchar(30),
		@_Date DATETIME,
		@_ExternalAuthentication tinyint,
		@_TestServer tinyint ,
		@_ListeningPort int ,
		@_CurrentVersion nchar(30),
		@_PreServerGroupCnts int,
		@_EnableGameServerGroupCnts int
	
AS
    INSERT INTO dbo.log_aceonline(PublicIP, PrivateIP, Accept, LanguageType, AcceptComment, Publisher, Sender, Date, ExternalAuthentication, TestServer, ListeningPort, CurrentVersion, PreServerGroupCnts, EnableGameServerGroupCnts)
		VALUES ( @_PublicIP, @_PrivateIP, @_Accept, @_LanguageType, @_AcceptComment, @_Publisher, @_Sender, @_Date, @_ExternalAuthentication, @_TestServer, @_ListeningPort, @_CurrentVersion, @_PreServerGroupCnts, @_EnableGameServerGroupCnts)

эээ вроде правильно и все равно та же ошибка
31 мар 14, 11:47    [15810100]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shrec
эээ вроде правильно и все равно та же ошибка

Даже если вы уберете INSERT вообще, то ошибка будет той же самой.
Потому что проблема не в INSERT-е
31 мар 14, 11:54    [15810156]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
o-o
Guest
уже бы сто раз вызов процедуры переписали.
не передавайте параметры позиционно, передавайте поимённо

@parameter = value
31 мар 14, 12:14    [15810312]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
o-o,

и еше


exec dbo.authentication_server_insert_log @_Date='2013-03-03',@_PrivateIP='next',.......
31 мар 14, 13:09    [15810790]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
o-o
Guest
yaxta,

вы мне чего-то сказали?
или пообщаться не с кем? зравствуй, natya!
31 мар 14, 13:12    [15810814]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
o-o,

привет
нет я сказал автора
но некорректно записал прочедуры и некорректно инсерт даже exec не правилно записал поетому дает ошибку
31 мар 14, 13:14    [15810829]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при преобразовании типа данных varchar к datetime.  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
оффф на даели уже


вот твой скрипт



[src]CREATE TABLE [dbo].[log_paradise](
[UniqueNumber] [int] IDENTITY(1,1) NOT NULL,
[Date] [datetime] NOT NULL,
[PublicIP] [nchar](20) NULL,
[PrivateIP] [nchar](20) NULL,
[Accept] [tinyint] NULL,
[AcceptComment] [nchar](254) NULL,
[Publisher] [nchar](35) NULL,
[Sender] [nchar](30) NULL,
[CurrentVersion] [nchar](30) NULL,
[LanguageType] [int] NULL,
[TestServer] [tinyint] NULL,
[ListeningPort] [int] NULL,
[ExternalAuthentication] [tinyint] NULL,
[PreServerGroupCnts] [int] NULL,
[EnableGameServerGroupCnts] [int] NULL

)

CREATE  PROCEDURE [dbo].[authentication_server_insert_log] 

@_Date datetime,
@_PublicIP nchar(20),
@_PrivateIP nchar(20),
@_Accept tinyint,
@_AcceptComment nchar(254),
@_Publisher nchar(35),
@_Sender nchar(30),
@_CurrentVersion nchar(30),
@_LanguageType int ,
@_TestServer tinyint ,
@_ListeningPort int ,
@_ExternalAuthentication tinyint,
@_PreServerGroupCnts int,
@_EnableGameServerGroupCnts int

AS
INSERT INTO dbo.log_paradise
(
[Date] ,
[PublicIP] ,
[PrivateIP] ,
[Accept] ,
[AcceptComment] ,
[Publisher] ,
[Sender] ,
[CurrentVersion] ,
[LanguageType] ,
[TestServer] ,
[ListeningPort] ,
[ExternalAuthentication],
[PreServerGroupCnts] ,
[EnableGameServerGroupCnts] 
)
select
@_Date ,
@_PublicIP ,
@_PrivateIP ,
@_Accept ,
@_AcceptComment ,
@_Publisher ,
@_Sender ,
@_CurrentVersion ,
@_LanguageType  ,
@_TestServer  ,
@_ListeningPort  ,
@_ExternalAuthentication ,
@_PreServerGroupCnts ,
@_EnableGameServerGroupCnts 


exec [dbo].[authentication_server_insert_log]
@_Date='2013-03-03',
@_PublicIP='_PublicIP',
@_PrivateIP='PublicIP ' ,
@_Accept=123,
@_AcceptComment='PublicIP' ,
@_Publisher='asdas' ,
@_Sender='hjk' ,
@_CurrentVersion='gfhjgf' ,
@_LanguageType=45  ,
@_TestServer=55  ,
@_ListeningPort=74  ,
@_ExternalAuthentication=78 ,
@_PreServerGroupCnts=45 ,
@_EnableGameServerGroupCnts=78 

select*from  log_paradise

UniqueNumber Date                    PublicIP             PrivateIP            Accept AcceptComment                                                                                                                                                                                                                                                  Publisher                           Sender                         CurrentVersion                 LanguageType TestServer ListeningPort ExternalAuthentication PreServerGroupCnts EnableGameServerGroupCnts
------------ ----------------------- -------------------- -------------------- ------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------- ------------------------------ ------------------------------ ------------ ---------- ------------- ---------------------- ------------------ -------------------------
41           2013-03-03 00:00:00.000 _PublicIP            PublicIP             123    PublicIP                                                                                                                                                                                                                                                       asdas                               hjk                            gfhjgf                         45           55         74            78                     45                 78
[/SRC]
31 мар 14, 13:54    [15811140]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить