OK, donc je suis en train de faire un outil logiciel qui alerte les CRB qui vont expirer. Les intervalles d'expiration sont déterminés par l'utilisateur du programme. Je suis actuellement en train d'utiliser SQL Server 2008. Donc j'essaye de faire une instruction SQL qui récupérera tous les enregistrements qui sont en dehors de cette période d'expiration. Voici le concept que je suis en train de réaliser:Déterminer DATEPART par int valeur dans SQL
Declare @ExpiryType as int -- (0=Days,1=Weeks,2=Months,3=Years)
Declare @ExpiryValue as int -- Interval of expiry
Declare @DateOfIssue as date -- Date of last CRB check
SELECT * FROM tblDBS_Details
WHERE DATEADD(@ExpiryType, @ExpiryValue, @DateOfIssue) <= GETDATE()
Comme vous pouvez le voir, le tableau contient le type intervalle d'expiration (jours, semaines, mois, années), la valeur d'intervalle, et la date à laquelle je besoin d'ajouter l'intervalle à.
Je reçois une erreur dans le premier paramètre de la fonction DATEADD car elle attend un DATEPART et non un nombre entier. Existe-t-il un moyen de déterminer quel DATEPART utiliser en fonction de l'entier stocké? Ou est-ce qu'il y a un autre moyen de le faire?
Ce fut assez d'aide, grandement appréciée! – Weebie