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