2012-08-26 1 views
1

Je voudrais exécuter ma procédure stockée MSSQL à partir de mon programme java en donnant comme paramètres deux dates pour avoir une sélection entre ces deux dates. Donc, dans le code java je continuai comme ceci:Erreur lors de la conversion de nvarchar en datetime

"EXEC [dbo].[MyProcedure] " + "'"+ dateFrom+"'" ,"'"+dateTo"'" 

J'ai déclaré mes paramètres dans la procédure du serveur SQL comme la façon suivante: @collected_date1 datetime, @collected_date2 datetime. Et je choisi entre les deux périodes comme celle-ci:

SELECT @date1 = Convert(varchar(23),@collected_date1,121) 
SELECT @date2= Convert(varchar(23),@collected_date2, 121) 

Cependant, j'ai cette erreur de message: Error converting data type nvarchar to datetime

Pourriez-vous me aider s'il vous plaît? Merci

+0

Que font les valeurs de 'dateFro m' et 'dateTo' ressemblent une fois dans la déclaration d'EXEC? Je suppose que ce sont des chaînes représentant des dates, mais quel format sont ces dates? Peut-être que le moteur ne peut pas les convertir en utilisant les paramètres régionaux actuels et/ou le format de date. –

Répondre

2

sur déclaration ci-dessus vous déclarez la variable

@ datetime collected_date1, @ datetime collected_date2

et lorsque vous définissez vous convertissez type de données varchar il vous donne erreur

si vous voulez définir dans datetime type de données que vous devez utiliser

SELECT @date2= Convert(datetime,@collected_date2, 121) ; 
+0

Merci, c'est OK maintenant avec votre réponse, mais j'ai un autre problème avec cette erreur: "La conversion a échoué lors de la conversion de la date et/ou l'heure de la chaîne de caractères". Je donne mes paramètres de date à ce format "aaaa-mm-jj". Toute idée pour corriger cela s'il vous plaît. Merci beaucoup – Abdousoft

+0

'Convertir (DATETIME, CONVERT (VARCHAR (2), @Month) + '/' + CONVERT (VARCHAR (2), @Jour) + '/' + CONVERT (VARCHAR (4), @Year) '' –

+0

ceci en est un autre 'SELECT convert (datetime, @ collected_date2 + '00: 00: 00 ', 120) - aaaa-mm-jj hh: mm: ss (24h)' –

Questions connexes