/* Differenza in giorni */
CREATE FUNCTION uf_DaysDifference (@dataIniziale DATETIME, @dataFinale DATETIME)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT CASE WHEN
DATEADD(DAY, DATEDIFF(DAY, @dataIniziale, @dataFinale), @dataIniziale) > @dataFinale
THEN DATEDIFF(DAY, @dataIniziale, @dataFinale) - 1
ELSE DATEDIFF(DAY, @dataIniziale, @dataFinale) END
)
END
GO
/* Ad esempio: */
select dbo.uf_DaysDifference('20050121','20051025') as NumGiorni
select dbo.uf_DaysDifference('20050121',getdate()) as NumGiorni
select dbo.uf_DaysDifference('20050121',CURRENT_TIMESTAMP) as NumGiorni