TSQL Astuce 5 : Modifier une date par un modificateur
Rédigé par marmous
Aucun commentaire
Classé dans : Informatique
Un modificateur se compose de 3 parties :
- Type d'opération sous la forme + ou -
- Valeur à appliquer
- Partie de la date à modifier sous la forme d pour jour, w pour semaine, m pour mois et y pour année
La fonction se présente sous la forme :
CREATE FUNCTION [dbo].[ApplyDateModifier]
(
@date varchar(32),
@modifier varchar(32)
)
RETURNS varchar(32)
AS
BEGIN
declare @return varchar(32),
@type char
set @return=@date
set @type=(substring(reverse(Lower(@modifier)),1,1))
if (@type='y')
begin
set @return=dbo.FormatDate(DATEADD(YEAR, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end
if (@type='m')
begin
set @return=dbo.FormatDate(DATEADD(MONTH, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end
if (@type='w')
begin
set @return=dbo.FormatDate(DATEADD(WEEK, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end
if (@type='d')
begin
set @return=dbo.FormatDate(DATEADD(DAY, convert(int,replace(@modifier,@type,'')),@date) ,'yyyymmdd')
end
return @return
END
On utilise ici la fonction système DateAdd et la fonction vue précédemment FormatDate.Exemple d'utilisation
select dbo.ApplyDateModifier(GetDate(),'3d');
Cela affichera la date du jour + 3 joursLa limite de cette fonction est qu'elle ne peut mélanger plusieurs partie à modifier.