Devolver valores concretos

20/02/2009 - 15:51 por MhBeyle | Informe spam
Muy buenas tardes,

Espero que la siguiente pregunta no sea un embrollo... :)

Teniendo una tabla de horarios con un código único para cada hora, tal
que así:

01 08:00
02 08:05
03 08:10
04 08:15
05 08:20
06 08:25
07 08:30
08 08:35
09 08:40
10 08:45
11 08:50
12 08:55
13 09:00

¿Es posible devolver valores dependiento de un intervalo constante?
Según el usuario introduzca intervalos de 5, 10, 15, 20, 30 minutos,
los resultados devueltos variarán. Por ejemplo, si introduce 20, la
salida tendría que ser así:

01 08:00
05 08:20
09 08:40
13 09:00

¿Es posible hacer esto sin demasiado coste añadido desde SQL server?
Porque doy por sentado que es poco menos que imposible hacerlo desde
un SELECT normal y corriente y se hace necesario el uso de T-SQL.

Un saludo,

MhBeyle ___
 

Leer las respuestas

#1 Alejandro Mesa
20/02/2009 - 16:44 | Informe spam
Ve si esto te es de ayuda.

DECLARE @t TABLE (
[id] INT NOT NULL PRIMARY KEY,
dt DATETIME NOT NULL UNIQUE
);

INSERT INTO @t VALUES(01, '08:00');
INSERT INTO @t VALUES(02, '08:05');
INSERT INTO @t VALUES(03, '08:10');
INSERT INTO @t VALUES(04, '08:15');
INSERT INTO @t VALUES(05, '08:20');
INSERT INTO @t VALUES(06, '08:25');
INSERT INTO @t VALUES(07, '08:30');
INSERT INTO @t VALUES(08, '08:35');
INSERT INTO @t VALUES(09, '08:40');
INSERT INTO @t VALUES(10, '08:45');
INSERT INTO @t VALUES(11, '08:50');
INSERT INTO @t VALUES(12, '08:55');
INSERT INTO @t VALUES(13, '09:00');

DECLARE @int INT;

SET @int = 20;

SELECT *
FROM @t
WHERE DATEDIFF([minute], '19000101', dt) % @int = 0;
GO


AMB



"MhBeyle" wrote:

Muy buenas tardes,

Espero que la siguiente pregunta no sea un embrollo... :)

Teniendo una tabla de horarios con un código único para cada hora, tal
que así:

01 08:00
02 08:05
03 08:10
04 08:15
05 08:20
06 08:25
07 08:30
08 08:35
09 08:40
10 08:45
11 08:50
12 08:55
13 09:00

¿Es posible devolver valores dependiento de un intervalo constante?
Según el usuario introduzca intervalos de 5, 10, 15, 20, 30 minutos,
los resultados devueltos variarán. Por ejemplo, si introduce 20, la
salida tendría que ser así:

01 08:00
05 08:20
09 08:40
13 09:00

¿Es posible hacer esto sin demasiado coste añadido desde SQL server?
Porque doy por sentado que es poco menos que imposible hacerlo desde
un SELECT normal y corriente y se hace necesario el uso de T-SQL.

Un saludo,

MhBeyle ___

Preguntas similares