Favor

01/06/2005 - 02:50 por Juan Carlos | Informe spam
Como puedo hacer para que me muestre los dias de un rango de fechas que
introduje en una tabla con procedimientos almacenados:
fichaini/06/2005
fechafin/06/2005
lo que quiero es que me muestre los dias que estan dentro de este rango que
seria:
01/06/2005
02/06/2005
03/06/2005
.
.
08/06/2005
que debo usar ya probe con datename, datediff, dateadd. Gracias a todos

Preguntas similare

Leer las respuestas

#1 Maxi
01/06/2005 - 04:59 | Informe spam
Hola, a ver, esto seria bueno hacerlo en la aplicacion y no en sql, pero
para hacerlo en sql lo primero q vas a tener que hacer es llenar una tabla
temporal con estas fechas, para eso podrias usar la funcion While


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Juan Carlos" escribió en el mensaje
news:
Como puedo hacer para que me muestre los dias de un rango de fechas que
introduje en una tabla con procedimientos almacenados:
fichaini/06/2005
fechafin/06/2005
lo que quiero es que me muestre los dias que estan dentro de este rango
que
seria:
01/06/2005
02/06/2005
03/06/2005
.
.
08/06/2005
que debo usar ya probe con datename, datediff, dateadd. Gracias a todos
Respuesta Responder a este mensaje
#2 Alejandro Mesa
01/06/2005 - 14:22 | Informe spam
Juan Carlos,

Lo puedes hacer de dos maneras, la una usando una tabla calendario y la otra
teniendo una tabla auxiliar de números, esta ultima es muy util para muchas
cosas en t-sql. Veamos un ejemplo con la segunda opcion.

use northwind
go

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

create unique nonclustered index ix_u_nc_number_number on dbo.number(number
asc)
go

create function dbo.ufn_fechas (
@sd datetime,
@ed datetime
)
returns table
with schemabinding
as
return (select dateadd(day, number, @sd) as fecha from dbo.number where
number <= datediff(day, @sd, @ed))
go

select
*
from
dbo.ufn_fechas('20040101', '20040301')
go

drop function dbo.ufn_fechas
go

drop table dbo.number
go


Un comentario mas. Tener una tabla auxiliar de números, no entorpece el
funcionamiento y rendimineto de una base de datos en lo absoluto. Pudieran
hacer una prueba con un millon de filas y veran que el sql manejara muy bien
esta cantidad de filas y ademas, el espacio ocupado no es algo fuera de lo
comun, mucho menos en estos tiempos donde el costo de los sistema de
almacenamineto ha alcanzado valores razonables.


AMB

"Juan Carlos" wrote:

Como puedo hacer para que me muestre los dias de un rango de fechas que
introduje en una tabla con procedimientos almacenados:
fichaini/06/2005
fechafin/06/2005
lo que quiero es que me muestre los dias que estan dentro de este rango que
seria:
01/06/2005
02/06/2005
03/06/2005
.
.
08/06/2005
que debo usar ya probe con datename, datediff, dateadd. Gracias a todos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida