SQL Server - Diferencia de dos fechas en minutos

 
Vista:
sin imagen de perfil

Diferencia de dos fechas en minutos

Publicado por Carlos Murillo (9 intervenciones) el 16/05/2005 12:08:55
Buenas

Mi problema es el siguiente,tengo dos fechas que se diferencian como mucho en 3 horas (poniendo ya muchisimo) y tengo que conseguir sacar la diferencia que hay entre esas dos fechas pero en minutos,esto tratando de pasar los datos a un smalldatetime y a partir de hay convertir la fecha a un varchar y ir capturando los dos primeros numeros (horas)y multiplicarlos por 60 y sumarles los minutos,pero me dice que no se puede convertir el caracter "E" a integer,si cambio los datos y le mando coger otro numero entonces me pone todo en blanco.

Si alguien supiera como puedo modificarlo se lo agradeceria mucho.

Por cierto esto lo estoy haciendo todo en una funcion aparte

Gracias de antemano.

Un Saludo.Murillo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Diferencia de dos fechas en minutos

Publicado por Carlos Murillo (9 intervenciones) el 16/05/2005 14:44:45
Weno yo ya arregle el problema,si alguien necesita como se hace aki dejo la funcion que yo cree:

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER FUNCTION MINUTOS (@horas DATETIME)
RETURNS int
AS
BEGIN
declare @opcion smalldatetime
DECLARE @minutos varchar(200)
declare @minutos2 varchar(2)
declare @minutos3 varchar(2)
declare @min integer
set @opcion= cast (@horas as smalldatetime);
select @minutos= cast(@opcion as varchar);
select @minutos2=substring(@minutos,14,1);
select @minutos3=substring(@minutos,16,2);
select @min=cast (@minutos2 as integer)*60 + @minutos3;
return @min;
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Diferencia de dos fechas en minutos

Publicado por Carlos Murillo (9 intervenciones) el 17/05/2005 09:16:15
El codigo que pase antes esta algo incorrecto dado que sql server no reconoce fechas 00 y pone dichas fechas como 12AM,entonces se añade una cosa y queda de la siguiente manera:

--Esta funcion se encarga de pasar la hora de una fecha a minutos

ALTER FUNCTION MAdministrador.MINUTOS (@hora DATETIME)
RETURNS int
AS
BEGIN
DECLARE @duracion varchar(200)
declare @horas varchar(2)
declare @minutos varchar(2)
declare @arreglo_horario int
declare @min integer
select @arreglo_horario=0;
select @duracion= cast(@hora as varchar);
select @horas=substring(@duracion,13,2);
--Se hace esto porque el programa no reconoce fechas con horario 24 horas
--sino que lo hace con horarios de 12,de esta forma si nos da una fecha con
--horas=12 nosotros reconocemos que trata de decirnos las 00 y entonces le
--restamos 720 minutos que son los minutos que hay de diferencia entre el
--horario correcto y el error del programa
if substring(@minutos,13,2)=12
begin
select @arreglo_horario=720;
end
select @minutos=substring(@duracion,16,2);
select @min=(@horas) *60 + @minutos-@arreglo_horario;
return @min;
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MIRA:Diferencia de dos fechas en minutos

Publicado por Victor //:-) (12 intervenciones) el 24/05/2005 23:01:37
declare @dt_fecha_inicial datetime,
@dt_fecha_final datetime

select @dt_fecha_inicial=getdate(), @dt_fecha_final = getdate()+1/*1dia=24horas=1440minutos*/

select DATEDIFF( minute ,@dt_fecha_inicial , @dt_fecha_final )

atte.
Victor //:-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DIRENCIA ENTRE HORAS

Publicado por MARTIN (5 intervenciones) el 20/01/2006 22:57:44
HOLA YO TENGO UN PROBLEMA ALGO PARECIDO PERO LO QUE NECISTO COMPARAR ES UNA FECHA CON LOS DATOS QUE TEWNGO EN UNA TABLA MATRIZ QUE ES PARA MI MI HORARIO.
EL ASUNTO ES QEU CUANDO REGISTRO MI HORARIO POR EL VB LO INGRESO EN FORAMTO DE HORAS(hh:mm:ss) EN SQL LO RECONOCE ASI
01/01/1900 08:30:00 a.m. YA ES POR DECR E S MI HORA DE ENTRARDA PERO SI LOQ UERI COMPARAR CON LA FECHA ES QUE ESOTY MARCANDO DIA A DIA
POR DECIR 01/01/2006 08:45:00 a.m. MI DATEDIFF NO VA FUNCAR...
COMO AHGO PARA COMPARAR SOLO LAS HORAS Y MINUTOS..PARA SABE R CUANTO TIEMPO LLEGO TARDE.
AHORA ME DIRAN QUE LO PUDE AHBER GAURDAOR EN EL MISMO FORMATO DEL PRIMERO PERO A MI ME SIRVE LA INFORMACION ACTUAL DEL 2 REGSITRO PARA PODER CARA MIS REPORTES.

SOLUCION: POR EL TIEMPO TODO LO HICE DESDE EL VB. NO ME QUEDO DE OTRA...

SE PUEDE HACER DESDE EL SQL?????

MARTIN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar