Bonjour,

Je recherche une petite aide pour éclaircir un comportement que je ne comprend pas !

J'ai une procédure stockée qui comporte un cursor lui mème composé d'une requête importante avec 4 UNION et des variables nommées date1 et date2 pour effectuer un between.

La valeur des variable est déterminé avant le cursor avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
set @date1 = convert(varchar,getdate()-@nbJour,103) + ' 00:00:00'
set @date2 = convert(varchar,getdate()-@nbJour,103) + ' 23:59:59'
Quand j'utilise l'instruction convert(varchar,getdate()-@nbJour,103) + ' 00:00:00' directement dans le between le temps d'execution de la ps reste correct moin de 1min ! Cependant quand j'utilise a la place les variables date1 et date 2 le temps d'exécution est de plus de 10 min.

Je ne comprend pas cette différence. Le between est utilisé dans chaque requête des UNION et les variables sont bien de type datetime.

Une petite idée sur cette différence ?

Merci beaucoup