IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Error converting data type nvarchar to datetime [2012]


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Par défaut Error converting data type nvarchar to datetime
    Salut
    J'ai un gros soucis avec le type datetime2 de sql server 2012.
    J'ai une requête qui marche très bien avec sql server 2008 mais quand je l'exécute en sql server 2012, ça me génère une erreur :

    "Msg 8114, Level 16, State 5, Procedure ETAT_RAPPORT_VENTE_PERIODE_EVD, Line 0
    Error converting data type nvarchar to datetime."


    Voic la requête sql server :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    USE [MSELLER]
    GO
    /****** Object:  StoredProcedure [dbo].[ETAT_RAPPORT_VENTE_PERIODE_EVD]    Script Date: 19/11/2013 11:28:18 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
      ALTER PROCEDURE [dbo].[ETAT_RAPPORT_VENTE_PERIODE_EVD]
      @IdDepot int,
      @dateA datetime,
      @dateB datetime
     
      AS
      SET NOCOUNT ON
     
      SELECT [ID_SIM],[Id_Caissier], sum([MTTREGLEMENT])as Montant,
      --(SELECT [NOM]+ ' ' +[Prenoms] as LBLPERSONNE FROM [dbo].[PERSONNE] WHERE [dbo].[PERSONNE].[ID_AUTO] = [dbo].[REGLEMENT].[ID_SIM]) as Client,
      (SELECT LBLSOCIETET FROM SOCIETE) as lblSociete,
    --ECT [NOM]+ ' ' +[Prenoms] as LBLPERSONNE  FROM [dbo].[PEPRESENTANT_ADMIN] WHERE [dbo].[PEPRESENTANT_ADMIN].[ID_AUTO] =  (SELECT Id_Caissier FROM [dbo].[REGLEMENT] WHERE [dbo].[REGLEMENT].[ID_AUTO] = (SELECT ID_AUTO FROM [dbo].[REGLEMENT])))as Caissier,
     (SELECT [NOM]+ ' ' +[Prenoms] as LBLPERSONNE FROM [dbo].[PERSONNE] WHERE [dbo].[PERSONNE].[ID_AUTO] = (SELECT ID_PERSONNE 
       FROM [dbo].[SIM] WHERE [dbo].[SIM].[ID_AUTO] = [dbo].[REGLEMENT].[ID_SIM])) as Client,
      (SELECT @dateA) as DateA,
      (SELECT @dateB) as DateB,
     (SELECT [NOM]+ ' ' +[Prenoms]  FROM [dbo].[PEPRESENTANT_ADMIN]  WHERE [dbo].[PEPRESENTANT_ADMIN].[ID_AUTO] =  @IdDepot) as Caissier
     
      FROM [dbo].[REGLEMENT]
      WHERE [dbo].[REGLEMENT].[DTEOP] BETWEEN @dateA and (@dateB + 1) and [dbo].[REGLEMENT].[Id_Caissier] = @IdDepot GROUP BY [dbo].[REGLEMENT].[ID_SIM],[dbo].[REGLEMENT].[Id_Caissier]
    Merci de m'aider SVP

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Pouvez vous nous donner la commande avec laquelle vous appelez la Procédure.

    Pouvez vous également nous indiquer le type de la colonne [dbo].[REGLEMENT].[DTEOP]

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    Pouvez vous nous donner la commande avec laquelle vous appelez la Procédure.

    Pouvez vous également nous indiquer le type de la colonne [dbo].[REGLEMENT].[DTEOP]

    Merci beaucoup

    TABLE REGLEMENT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ID_AUTO	int	Unchecked
    REF_REGLEMENT	varchar(15)	Unchecked
    DTEOP	datetime2(7)	Checked
    ID_OPENCAISSE	int	Checked
    ID_SIM	int	Unchecked
    MTTREGLEMENT	decimal(18, 3)	Checked
    IS_VALIDER	bit	Checked
    IS_COMPTABILISER	bit	Checked
    IS_ARCHIVER	bit	Checked
    Id_Caissier	int	Checked
    is_annuler	bit	Checked
    		Unchecked

    Le type de DTEOP est datetime2(7)

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est ça qui ne passe plus : @dateB + 1.
    Il faut faire ça plus littéralement genre dateadd(day, + 1, @dateB )

    Entre nous, il serait temps que tu apprennes à faire des jointures comme du monde avec INNER JOIN au lieu de pondre ce genre de requête immonde.
    Dernière modification par Invité ; 19/11/2013 à 15h38.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    C'est ça qui ne passe plus : @dateB + 1.
    Il faut faire ça plus littéralement genre dateadd(day, + 1, @dateB )

    Entre nous, il serait temps que tu apprennes à faire des jointures comme du monde avec INNER JOIN au lieu de pondre ce genre de requête immonde.

    Merci beaucoup
    Mais quand j'enlève le (+1) ça me dire la même chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    USE [MSELLER]
    GO
     
    DECLARE	@return_value int
     
    EXEC	@return_value = [dbo].[ETAT_RAPPORT_VENTE_PERIODE_EVD]
    		@IdDepot = 3,
    		@dateA = N'01/10/2010',
    		@dateB = N'31/12/2013'
     
    SELECT	'Return Value' = @return_value
     
    GO

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Votre format de date doit différer entre les deux serveurs.

    Vous pouvez faire un SET DATEFORMAT dmy,

    Mais vous devriez plutot utiliser le format iso suivant pour spécifier vos datetime en entrèe de procédure stockée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    EXEC	@return_value = [dbo].[ETAT_RAPPORT_VENTE_PERIODE_EVD]
    		@IdDepot = 3,
    		@dateA = N'20101001',
    		@dateB = N'20131231'
    Ainsi, plus de souci quel que soit le format de date paramétré pour l'instance sur laquelle cette commande s’exécute

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/12/2009, 11h19
  2. Réponses: 2
    Dernier message: 11/05/2009, 20h18
  3. Syntax error converting character string to smalldatetime data type.
    Par Anthony.Desvernois dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/07/2007, 17h26
  4. Réponses: 1
    Dernier message: 28/05/2007, 09h52
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo