TRANSACT SELECT con filtro de hora

14/05/2009 - 18:07 por Hugo Gsell | Informe spam
Hola foro.
Como siempre recurro a uds cuando se me queman los libros.
Tengo una tabla con un campo fecha hora (por ej un registro... 15/05/2009
15:23:01) y así muchos registros con fechas y horas diferentes.
Necesito filtrar todos los registros de un conjunto de días. por ej del
01/05/2009 15:00:00 al 20/05/2009 15:00:00
y no se como hacer el filtro.
Desde ya muchas gracias.


Hugo A. Gsell

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
14/05/2009 - 18:28 | Informe spam
Hugo,

declare @sd datetime, @ed datetime;

set @sd = '2009-05-01T15:00:00';
set @ed = '2009-05-20T15:00:00';

select c1,...,cn
from tu_table
where columna_fecha between @sd and @ed;
go

Te sirve esto?

AMB


"Hugo Gsell" wrote:

Hola foro.
Como siempre recurro a uds cuando se me queman los libros.
Tengo una tabla con un campo fecha hora (por ej un registro... 15/05/2009
15:23:01) y así muchos registros con fechas y horas diferentes.
Necesito filtrar todos los registros de un conjunto de días. por ej del
01/05/2009 15:00:00 al 20/05/2009 15:00:00
y no se como hacer el filtro.
Desde ya muchas gracias.


Hugo A. Gsell




Respuesta Responder a este mensaje
#2 Hugo Gsell
15/05/2009 - 12:38 | Informe spam
Si me funciona PARA UN DIA en tu ejemplo 2009-05-01.
El tema es que si pongo para un rango de dias por ej 01/05/2009 al
15/05/2009 necesitaría recuperar
solo los registros entre un rango de horas es decir, necesito los
registros en mi caso grabados
entre una hora y otra.

Hugo A. Gsell

"Alejandro Mesa" escribió en el
mensaje news:
Hugo,

declare @sd datetime, @ed datetime;

set @sd = '2009-05-01T15:00:00';
set @ed = '2009-05-20T15:00:00';

select c1,...,cn
from tu_table
where columna_fecha between @sd and @ed;
go

Te sirve esto?

AMB


"Hugo Gsell" wrote:

Hola foro.
Como siempre recurro a uds cuando se me queman los libros.
Tengo una tabla con un campo fecha hora (por ej un registro... 15/05/2009
15:23:01) y así muchos registros con fechas y horas diferentes.
Necesito filtrar todos los registros de un conjunto de días. por ej
del
01/05/2009 15:00:00 al 20/05/2009 15:00:00
y no se como hacer el filtro.
Desde ya muchas gracias.


Hugo A. Gsell




Respuesta Responder a este mensaje
#3 Hugo Gsell
15/05/2009 - 13:41 | Informe spam
Estoy probando con:
SELECT * FROM turnos
WHERE datepart(hour,fechahoraturno) = '07'
AND datepart(minute,fechahoraturno) = '30'
ORDER BY fechahoraturno
...

PARECE QUE VA A FUNCIONAR
Hugo A. Gsell


"Alejandro Mesa" escribió en el
mensaje news:
Hugo,

declare @sd datetime, @ed datetime;

set @sd = '2009-05-01T15:00:00';
set @ed = '2009-05-20T15:00:00';

select c1,...,cn
from tu_table
where columna_fecha between @sd and @ed;
go

Te sirve esto?

AMB


"Hugo Gsell" wrote:

Hola foro.
Como siempre recurro a uds cuando se me queman los libros.
Tengo una tabla con un campo fecha hora (por ej un registro... 15/05/2009
15:23:01) y así muchos registros con fechas y horas diferentes.
Necesito filtrar todos los registros de un conjunto de días. por ej
del
01/05/2009 15:00:00 al 20/05/2009 15:00:00
y no se como hacer el filtro.
Desde ya muchas gracias.


Hugo A. Gsell




Respuesta Responder a este mensaje
#4 Alejandro Mesa
15/05/2009 - 15:13 | Informe spam
Hugo,

Ahora si entendi lo que deseas. Por eso es importante que cuando tengas este
tipo de preguntas, postees la estructura de las tablas involucradas,
incluyendo restricciones e indices, asi como data de ejemplo en forma de
sentencias "insert" y el resultado esperado.

Si entendi bien esta vez, deseas seleccionar solo las filas en ese rango de
horas, aunque el filtro incluya mas de un dia, correcto?

Creo que entonces deberiamos incluir expresiones de filtro para el dia y
expresiones para el timepo.

DECLARE @sd DATETIME, @ed DATETIME;
DECLARE @st DATETIME, @et DATETIME;

SET @sd = '20090323';
SET @ed = '20090401';

SET @st = '06:00:00';
SET @et = '08:25:45';

SELECT
ID, dtColumn
FROM
T
WHERE
dtColumn >= @sd
AND dtColumn < DATEADD([day], 1, @ed)
AND dtColumn >= DATEADD([day], DATEDIFF([day], @st, dtColumn), @st)
AND dtColumn < DATEADD([second], 1, DATEADD([day], DATEDIFF([day], @et,
dtColumn), @et));
GO


AMB


"Hugo Gsell" wrote:

Estoy probando con:
SELECT * FROM turnos
WHERE datepart(hour,fechahoraturno) = '07'
AND datepart(minute,fechahoraturno) = '30'
ORDER BY fechahoraturno


PARECE QUE VA A FUNCIONAR
Hugo A. Gsell


"Alejandro Mesa" escribió en el
mensaje news:
> Hugo,
>
> declare @sd datetime, @ed datetime;
>
> set @sd = '2009-05-01T15:00:00';
> set @ed = '2009-05-20T15:00:00';
>
> select c1,...,cn
> from tu_table
> where columna_fecha between @sd and @ed;
> go
>
> Te sirve esto?
>
> AMB
>
>
> "Hugo Gsell" wrote:
>
>> Hola foro.
>> Como siempre recurro a uds cuando se me queman los libros.
>> Tengo una tabla con un campo fecha hora (por ej un registro... 15/05/2009
>> 15:23:01) y así muchos registros con fechas y horas diferentes.
>> Necesito filtrar todos los registros de un conjunto de días. por ej
>> del
>> 01/05/2009 15:00:00 al 20/05/2009 15:00:00
>> y no se como hacer el filtro.
>> Desde ya muchas gracias.
>>
>>
>> Hugo A. Gsell
>>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida