OVH Cloud OVH Cloud

procédures stockés

6 réponses
Avatar
jpb
Bonjour je viens de créer une sp et j'ai un pbme avec la date

CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
@cc char(2),
@yy varchar(2),
@date SMALLDATETIME


AS
DECLARE @SQL varchar(4000)
IF convert(integer,@yy) <10
set @yy='0'+@yy
ELSE
set @yy=@yy

set @SQL=
'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
NUM_ENT,' +''''+ @yy +''''+ '
as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date


print @SQL
exec (@SQL)
GO


je met '7/15/2005' et cela me met
Server: Msg 295, Level 16, State 3, Procedure
SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
Syntax error converting character string to smalldatetime data type.


avez vous une idée
merci d'avance

6 réponses

Avatar
bruno reiter [MVP]
mets plutot '20050715'

br

"jpb" wrote in message
news:
Bonjour je viens de créer une sp et j'ai un pbme avec la date

CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
@cc char(2),
@yy varchar(2),
@date SMALLDATETIME


AS
DECLARE @SQL varchar(4000)
IF convert(integer,@yy) <10
set @yy='0'+@yy
ELSE
set @yy=@yy

set @SQL > 'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
NUM_ENT,' +''''+ @yy +''''+ '
as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date


print @SQL
exec (@SQL)
GO


je met '7/15/2005' et cela me met
Server: Msg 295, Level 16, State 3, Procedure
SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
Syntax error converting character string to smalldatetime data type.


avez vous une idée
merci d'avance




Avatar
Sylvain Lafontaine
Regardez « SET DATEFORMAT » dans la doc. en ligne (BOL).

La valeur par défaut du format de la date dépend de la langue choisie par
défaut pour le compte Login utilisé et peut donc varier d'un utilisateur à
l'autre pour la même bdd.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC


"jpb" wrote in message
news:
Bonjour je viens de créer une sp et j'ai un pbme avec la date

CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
@cc char(2),
@yy varchar(2),
@date SMALLDATETIME


AS
DECLARE @SQL varchar(4000)
IF convert(integer,@yy) <10
set @yy='0'+@yy
ELSE
set @yy=@yy

set @SQL > 'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
NUM_ENT,' +''''+ @yy +''''+ '
as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date


print @SQL
exec (@SQL)
GO


je met '7/15/2005' et cela me met
Server: Msg 295, Level 16, State 3, Procedure
SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
Syntax error converting character string to smalldatetime data type.


avez vous une idée
merci d'avance




Avatar
jpb
j'ai mit un set format mais le message est le même losque je passe la variable

"Sylvain Lafontaine" a écrit :

Regardez « SET DATEFORMAT » dans la doc. en ligne (BOL).

La valeur par défaut du format de la date dépend de la langue choisie par
défaut pour le compte Login utilisé et peut donc varier d'un utilisateur à
l'autre pour la même bdd.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC


"jpb" wrote in message
news:
> Bonjour je viens de créer une sp et j'ai un pbme avec la date
>
> CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
> @cc char(2),
> @yy varchar(2),
> @date SMALLDATETIME
>
>
> AS
> DECLARE @SQL varchar(4000)
> IF convert(integer,@yy) <10
> set @yy='0'+@yy
> ELSE
> set @yy=@yy
>
> set @SQL > > 'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
> NUM_ENT,' +''''+ @yy +''''+ '
> as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date
>
>
> print @SQL
> exec (@SQL)
> GO
>
>
> je met '7/15/2005' et cela me met
> Server: Msg 295, Level 16, State 3, Procedure
> SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
> Syntax error converting character string to smalldatetime data type.
>
>
> avez vous une idée
> merci d'avance
>
>





Avatar
jpb
bonjour,
cela ne change rien

"bruno reiter [MVP]" a écrit :

mets plutot '20050715'

br

"jpb" wrote in message
news:
> Bonjour je viens de créer une sp et j'ai un pbme avec la date
>
> CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
> @cc char(2),
> @yy varchar(2),
> @date SMALLDATETIME
>
>
> AS
> DECLARE @SQL varchar(4000)
> IF convert(integer,@yy) <10
> set @yy='0'+@yy
> ELSE
> set @yy=@yy
>
> set @SQL > > 'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
> NUM_ENT,' +''''+ @yy +''''+ '
> as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date
>
>
> print @SQL
> exec (@SQL)
> GO
>
>
> je met '7/15/2005' et cela me met
> Server: Msg 295, Level 16, State 3, Procedure
> SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
> Syntax error converting character string to smalldatetime data type.
>
>
> avez vous une idée
> merci d'avance
>
>





Avatar
Nicolas LETULLIER
Tout d'abord, il te faudrait des quotes autour de ton @date

... + ' where GL06026 = ''' + @date + ''''

Mais là, il risque de se poser un problème de format de date, du fait de la
conversion en chaîne.

Peut-être un

... + ' where GL06026 = CONVERT(datetime, ''' + CONVERT(varchar,@date, 103)
+ ''', 103)'

Nicolas.


"jpb" a écrit dans le message de news:

Bonjour je viens de créer une sp et j'ai un pbme avec la date

CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
@cc char(2),
@yy varchar(2),
@date SMALLDATETIME


AS
DECLARE @SQL varchar(4000)
IF convert(integer,@yy) <10
set @yy='0'+@yy
ELSE
set @yy=@yy

set @SQL > 'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
NUM_ENT,' +''''+ @yy +''''+ '
as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date


print @SQL
exec (@SQL)
GO


je met '7/15/2005' et cela me met
Server: Msg 295, Level 16, State 3, Procedure
SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
Syntax error converting character string to smalldatetime data type.


avez vous une idée
merci d'avance




Avatar
jpb
merci la 2eme solution marche très bien
jpaul

"Nicolas LETULLIER" a écrit :

Tout d'abord, il te faudrait des quotes autour de ton @date

.... + ' where GL06026 = ''' + @date + ''''

Mais là, il risque de se poser un problème de format de date, du fait de la
conversion en chaîne.

Peut-être un

.... + ' where GL06026 = CONVERT(datetime, ''' + CONVERT(varchar,@date, 103)
+ ''', 103)'

Nicolas.


"jpb" a écrit dans le message de news:

> Bonjour je viens de créer une sp et j'ai un pbme avec la date
>
> CREATE PROCEDURE dbo.SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE
> @cc char(2),
> @yy varchar(2),
> @date SMALLDATETIME
>
>
> AS
> DECLARE @SQL varchar(4000)
> IF convert(integer,@yy) <10
> set @yy='0'+@yy
> ELSE
> set @yy=@yy
>
> set @SQL > > 'select GL06001,GL06002,GL06003,GL06004,GL06005,GL06006,GL06008,'+@cc+' as
> NUM_ENT,' +''''+ @yy +''''+ '
> as PARAM_YEAR from GL06' + @cc +@yy + ' where GL06026 = ' + @date
>
>
> print @SQL
> exec (@SQL)
> GO
>
>
> je met '7/15/2005' et cela me met
> Server: Msg 295, Level 16, State 3, Procedure
> SP_GET_ENTRIES_TO_GL06_TMP_BY_DATE, Line 14
> Syntax error converting character string to smalldatetime data type.
>
>
> avez vous une idée
> merci d'avance
>
>