FUNCION TSQL

04/08/2005 - 20:12 por Mauro | Informe spam
TENGO 2 FECHAS a y b y necesito una funcion que me devuelva los distintos
particiones añomes que existe entre las 2, ej

a/01/2005
b/06/2005

20051,20052,20053,20054,20055,20056

se que esto es algo bastante usado asi que quizas alguien tenga ya la
solucion.
gracias
 

Leer las respuestas

#1 Alejandro Mesa
04/08/2005 - 21:45 | Informe spam
Mauro,

Te es suficiente con que la funcion devuelva una tabla con estos valores?.
Si es asi entonces puedes usar una tabla auxiliar de numeros, siempre es muy
util tener una en la bd.

select
identity(int, 1, 1) as number
into
dbo.number
from
sysobjects as a
cross join
sysobjects as b
go

create unique clustered index ix_u_c_number_number on number(number asc)
go

create function dbo.f1 (
@sd datetime,
@ed datetime
)
returns table
as
return (
select
ltrim(year(dateadd(month, n.number - 1, @sd))) + ltrim(month(dateadd(month,
n.number - 1, @sd))) as c1
from
number as n
where
number between 1 and (datediff(month, @sd, @ed) + 1)
)
go

select
*
from
dbo.f1('20050101', '20050601')
go

drop function dbo.f1
go

drop table number
go


AMB


"Mauro" wrote:

TENGO 2 FECHAS a y b y necesito una funcion que me devuelva los distintos
particiones añomes que existe entre las 2, ej

a/01/2005
b/06/2005

20051,20052,20053,20054,20055,20056

se que esto es algo bastante usado asi que quizas alguien tenga ya la
solucion.
gracias



Preguntas similares