Si cela est une nouvelle procédure stockée (ou pas d'autres codes qui l'utilisent), la meilleure chose est de changer vos variables de type Date. Parce que if you comparing data by date
vous devriez comparerDates not varchar values
.
Si vous modifiez le type de variable CAN
, vous pouvez ajouter un jour en utilisant la fonction DATEADD()
comme ci-dessous.
--if @enddate is a date type
select @enddate = dateadd(day,1,@enddate)
Si vous changez CANNOT
types de variables, vous feriez mieux de les transmettre à ISO format
(c.-à-; yyyymmdd
) parce que le format de votre chaîne actuelle est la culture spécifique et requête pourrait échouer dans un serveur avec une autre culture.
--date pass as yyyymmdd (not culture specific)
select @enddate = convert(varchar(10),
dateadd(day, 1, convert(date, @enddate)), 101)
--date pass as mm/dd/yyyy (US culture)
select @enddate = convert(varchar(10),
dateadd(day, 1, convert(date, @enddate,101)), 101)
Vérifiez votre question. Après la mise à jour, vous avez également mentionné le même résultat. Tu veux dire que 03/05/2013? –
Avez-vous envisagé d'utiliser ** DATEADD ** avec ** CONVERT **? –
Y a-t-il une raison pour laquelle vous n'utilisez pas le type de données de date pour cela? Ensuite, vous pouvez simplement utiliser la fonction dateadd() pour ajouter un jour. – steoleary