Lista de dias de un mes..

21/03/2006 - 17:43 por Lord Voldemort | Informe spam
Hola!!!!

trabajando con SQLServer 2000 necesito hacer un view que me liste todos los
dias entre una fecha o de un mes ..
por ejemplo
Marzo

1-Mar-06
2-Mar-06
3-Mar-06
...
..
31-Mar-06

como le hago...?




un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000

Preguntas similare

Leer las respuestas

#1 Antares
21/03/2006 - 18:02 | Informe spam
para realizar lo que necesitas, podrías crear una función en donde le pases
como parámetros las fechas entre las que necesitas realizar tu vista y
regresar como resultado una colección de registros con las fechas existentes
entre dichas fechas.



Ejemplo.



CREATE FUNCTION fn_Fechas(@FechaIni DATETIME,
@FechaFin DATETIME)
RETURNS @Fecha TABLE
(Fecha @FechaIni)
AS
BEGIN

DECLARE @Fecha DATETIME
SET @Fecha = @FechaIni
WHILE @Fecha <= @FechaFin
BEGIN
INSERT INTO @Resultado (Fecha) VALUES (@Fecha)
SET @Fecha = DATEADD(D, 1, @Fecha)
END
RETURN
END
Respuesta Responder a este mensaje
#2 Lord Voldemort
21/03/2006 - 18:51 | Informe spam
que suena... suena..bien

veremos entonces..que hago..

muchas gracias Antares por tu interes..




un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000
"Antares" wrote in message
news:
para realizar lo que necesitas, podrías crear una función en donde le
pases como parámetros las fechas entre las que necesitas realizar tu vista
y regresar como resultado una colección de registros con las fechas
existentes entre dichas fechas.



Ejemplo.



CREATE FUNCTION fn_Fechas(@FechaIni DATETIME,
@FechaFin DATETIME)
RETURNS @Fecha TABLE
(Fecha @FechaIni)
AS
BEGIN

DECLARE @Fecha DATETIME
SET @Fecha = @FechaIni
WHILE @Fecha <= @FechaFin
BEGIN
INSERT INTO @Resultado (Fecha) VALUES (@Fecha)
SET @Fecha = DATEADD(D, 1, @Fecha)
END
RETURN
END


Respuesta Responder a este mensaje
#3 Alejandro Mesa
22/03/2006 - 01:25 | Informe spam
Lord Voldemort,

Siempre es util contar con una tabla de numeros para realizar este tipo
tareas.
No te preocupes por el tamanio, pues una tabla de 1 million de filas no es
gran cosa para sql server. Esta solucion tiene mejor performance que usar un
ciclo para incrementar la fecha.

Ejemplo:

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

alter table dbo.numero
add constraint pk_numero_numero primary key clustered (numero asc)
go

create function dbo.ufn_dates (
@sd datetime,
@ed datetime
)
returns table
as
return (
select
dateadd(day, numero, @sd) as [date]

from
dbo.numero
where
numero <= datediff(day, @sd, @ed)
)
go

select *
from dbo.ufn_dates('20060101', '20060228')
go

drop function dbo.ufn_dates
go

drop table dbo.numero
go


AMB

"Lord Voldemort" wrote:

Hola!!!!

trabajando con SQLServer 2000 necesito hacer un view que me liste todos los
dias entre una fecha o de un mes ..
por ejemplo
Marzo

1-Mar-06
2-Mar-06
3-Mar-06

...
31-Mar-06

como le hago...?




un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000




Respuesta Responder a este mensaje
#4 Lord Voldemort
23/03/2006 - 00:00 | Informe spam
Je jeje...

interesante...

saludos Alejandro...




un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000
"Alejandro Mesa" wrote in message
news:
Lord Voldemort,

Siempre es util contar con una tabla de numeros para realizar este tipo
tareas.
No te preocupes por el tamanio, pues una tabla de 1 million de filas no es
gran cosa para sql server. Esta solucion tiene mejor performance que usar
un
ciclo para incrementar la fecha.

Ejemplo:

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

alter table dbo.numero
add constraint pk_numero_numero primary key clustered (numero asc)
go

create function dbo.ufn_dates (
@sd datetime,
@ed datetime
)
returns table
as
return (
select
dateadd(day, numero, @sd) as [date]

from
dbo.numero
where
numero <= datediff(day, @sd, @ed)
)
go

select *
from dbo.ufn_dates('20060101', '20060228')
go

drop function dbo.ufn_dates
go

drop table dbo.numero
go


AMB

"Lord Voldemort" wrote:

Hola!!!!

trabajando con SQLServer 2000 necesito hacer un view que me liste todos
los
dias entre una fecha o de un mes ..
por ejemplo
Marzo

1-Mar-06
2-Mar-06
3-Mar-06

...
31-Mar-06

como le hago...?




un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000




Respuesta Responder a este mensaje
#5 gianalmeyda
16/01/2013 - 19:09 | Informe spam
Lord Voldemort escribió el 21/03/2006 17:43 :
Hola!!!!

trabajando con SQLServer 2000 necesito hacer un view que me liste todos los
dias entre una fecha o de un mes ..
por ejemplo
Marzo

1-Mar-06
2-Mar-06
3-Mar-06
...
..
31-Mar-06

como le hago...?




un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000


espero q te sirva, a mi me sirvio

Select dt_val from (
--–Matriz cruzada de valores numericos
select
(dateadd(dd, value, dateadd(month, 8 - 1, dateadd(year, 2013 - 1900, '1900.01.01')))) as dt_val
from(
select (v2 * 4 + v1) * 4 + v0 as value from
(select 0 as v0 union select 1 union select 2 union select 3) as rs0 cross join
(select 0 as v1 union select 1 union select 2 union select 3) as rs1 cross join
(select 0 as v2 union select 1 union select 2 union select 3) as rs2
) as rs
--–fin de matriz
) as rs2

where month(dt_val) = 8
order by dt_val

2013-08-01 00:00:00.000
2013-08-02 00:00:00.000
2013-08-03 00:00:00.000
2013-08-04 00:00:00.000
2013-08-05 00:00:00.000
2013-08-06 00:00:00.000
2013-08-07 00:00:00.000
2013-08-08 00:00:00.000
2013-08-09 00:00:00.000
2013-08-10 00:00:00.000
2013-08-11 00:00:00.000
2013-08-12 00:00:00.000
2013-08-13 00:00:00.000
2013-08-14 00:00:00.000
2013-08-15 00:00:00.000
2013-08-16 00:00:00.000
2013-08-17 00:00:00.000
2013-08-18 00:00:00.000
2013-08-19 00:00:00.000
2013-08-20 00:00:00.000
2013-08-21 00:00:00.000
2013-08-22 00:00:00.000
2013-08-23 00:00:00.000
2013-08-24 00:00:00.000
2013-08-25 00:00:00.000
2013-08-26 00:00:00.000
2013-08-27 00:00:00.000
2013-08-28 00:00:00.000
2013-08-29 00:00:00.000
2013-08-30 00:00:00.000
2013-08-31 00:00:00.000
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida