Bonjour à tous !!!
Je travaille avec SQL Server
Je cherche comment passer en paramètre d'une fonction l'intervalle de temps
(interval datepart).
Ce paramètre est dans les fonctions suivantes :
DateAdd(interval...) ,
dateDiff,
DatePart,
Je ne sais pas de quel type il s'agit.
D'après mes recherches, je pense qu'il s'agit d'un entier
et que chaque valeur est une constante
Mais je ne sais pas comment retourner cette valeur...
Je voudrais m'en servir pour retourner cette "Unité de temps",
à partir d'une chaine de caractère
Ceci afin de pouvoir donner cette fonction comme paramètre dans différentes fonctions de traitements de date.
ex :
dateAdd(ConvertStringUnitToDatePartInterval(Valeur Z), 8, ValeurDate)
Où Valeur Z est la valeur d'un champs dans une table.
Exemple :
Table "Durée Tache"
TacheId TacheNombreUniteTemps TacheUniteTemps
1 8 week
2 4 hour
etc...
Ma fonction est la suivante :
CREATE FUNCTION dbo.ConvertStringUnitToDatePartInterval
(
@aLeadTimeUnit varchar(20)
)
RETURNS --integer ??????????? ou datepart ou interval ?????
AS
BEGIN
declare @monretour integer --integer ?? Je ne sais pas... ou datepart ou interval ?????
if (@aLeadTimeUnit='hour' ) set @monretour=datepart.week
if (@aLeadTimeUnit='week' ) set @monretour= 'ww'
if (@aLeadTimeUnit='working day' ) set @monretour= 'dd'
RETURN @monretour
END
je lis partout :
Le tableau ci-dessous répertorie les options et les abréviations datepart reconnues par Microsoft SQL Server 2005 Compact Edition.
Microsoft SQL Server Date part constant | Date part constant Abbreviations
Partie de date Abréviations
year yy, yyyy
quarter qq, q
month mm, m
day dd, d
week wk, ww
hour hh
etc...
mais impossible d'utiliser ces valeurs ailleurs...
J'espère avoir été clair...
Si quelqu'un a une lumière, Je le remercie Beaucoup !!
Fredfloyd
Partager