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 :
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.
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'
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
Partager