mostrar fechas desde un mes determinado a la fecha de hoy...

20/11/2006 - 18:51 por Daniel G. Samborski | Informe spam
Hola de nuevo, en primer lugar me gustaria agradecer a los que han
respondido anteriormente, me han ayudado bastante.
Ahora estoy de nuevo con dos dudas.

1.) necesito realizar un filtro de todos los dias de un mes, osea, que si le
paso una fecha dd/mm/yyyy me muestre todos los clientes que esten
comprendidos dentro de ese mes y año sin considerar el dia.
¿Como podria lograr esto?

2.) Tengo que tirar un listado de los clientes que deban a partir de un mes
en adelante.
Por ejemplo, si pido el listado de los clientes que deben agosto, me muestre
los que deban agosto, septiembre, octubre, noviembre, etc...
Pero que todos deban agosto, si alguno debe a partir de septiembre u octubre
u otro mes, no lo muestre ya que no debe agosto.
Supongamos que esta es la lista de fechas. y solicito que me muestre quien
debe desde Agosto de 1973

fechas id
01/01/1990 1
01/02/1998 2
13/12/2000 3
01/01/2001 4
18/08/1973 5
21/09/1973 5
23/10/1973 5
21/09/1973 6
18/11/1973 5
14/10/1973 6

Me deberia mostrar solo el cliente Nº 5 que debe agosto en adelante...
18/08/1973 5
21/09/1973 5
23/10/1973 5
18/11/1973 5

Y no el cliente Nº 6 que debe desde Septiembre.
21/09/1973 6
14/10/1973 6



Daniel.
 

Leer las respuestas

#1 Alejandro Mesa
20/11/2006 - 19:44 | Informe spam
Daniel,

1.) necesito realizar un filtro de todos los dias de un mes, osea, que si le
paso una fecha dd/mm/yyyy me muestre todos los clientes que esten
comprendidos dentro de ese mes y año sin considerar el dia.
¿Como podria lograr esto?



declare @d datetime

set @d = '20061120' -- cualquier fecha del mes en cuestion

select *
from dbo.t1
where
fecha >= convert(char(6), @d, 112) + '01'
fecha < dateadd(month, 1, convert(char(6), @d, 112) + '01')
go

Si deseas ver todas las filas para el mes de Nov del 2006, entonces la
expresion quedara algo asi como:

...
where fecha >= '20061101' and fecha < '20061201'

2.) Tengo que tirar un listado de los clientes que deban a partir de un mes
en adelante.
Por ejemplo, si pido el listado de los clientes que deben agosto, me muestre
los que deban agosto, septiembre, octubre, noviembre, etc...
Pero que todos deban agosto, si alguno debe a partir de septiembre u octubre
u otro mes, no lo muestre ya que no debe agosto.
Supongamos que esta es la lista de fechas. y solicito que me muestre quien
debe desde Agosto de 1973



Puedes usar la expresion de la pregunta 1 para chequear existencia.

use northwind
go

create table #t (
fecha datetime,
[id] int
)

insert into #t values('19900101', 1)
insert into #t values('19980201', 2)
insert into #t values('20001213', 3)
insert into #t values('20010101', 4)
insert into #t values('19730818', 5)
insert into #t values('19730921', 5)
insert into #t values('19731023', 5)
insert into #t values('19730921', 6)
insert into #t values('19731118', 5)
insert into #t values('19731014', 6)
go

declare @d datetime

set @d = '19730801'

select
fecha, [id]
from
#t as a
where
fecha >= convert(char(6), @d, 112) + '01'
and exists (
select *
from #t as b
where
b.[id] = a.[id]
and fecha >= convert(char(6), @d, 112) + '01'
and fecha < dateadd(month, 1, convert(char(6), @d, 112) + '01')
)
go

drop table #t
go


AMB


"Daniel G. Samborski" wrote:

Hola de nuevo, en primer lugar me gustaria agradecer a los que han
respondido anteriormente, me han ayudado bastante.
Ahora estoy de nuevo con dos dudas.

1.) necesito realizar un filtro de todos los dias de un mes, osea, que si le
paso una fecha dd/mm/yyyy me muestre todos los clientes que esten
comprendidos dentro de ese mes y año sin considerar el dia.
¿Como podria lograr esto?

2.) Tengo que tirar un listado de los clientes que deban a partir de un mes
en adelante.
Por ejemplo, si pido el listado de los clientes que deben agosto, me muestre
los que deban agosto, septiembre, octubre, noviembre, etc...
Pero que todos deban agosto, si alguno debe a partir de septiembre u octubre
u otro mes, no lo muestre ya que no debe agosto.
Supongamos que esta es la lista de fechas. y solicito que me muestre quien
debe desde Agosto de 1973

fechas id
01/01/1990 1
01/02/1998 2
13/12/2000 3
01/01/2001 4
18/08/1973 5
21/09/1973 5
23/10/1973 5
21/09/1973 6
18/11/1973 5
14/10/1973 6

Me deberia mostrar solo el cliente Nº 5 que debe agosto en adelante...
18/08/1973 5
21/09/1973 5
23/10/1973 5
18/11/1973 5

Y no el cliente Nº 6 que debe desde Septiembre.
21/09/1973 6
14/10/1973 6



Daniel.



Preguntas similares