Sumar datetimes

15/11/2006 - 03:33 por kdokdo | Informe spam
Hola, como puedo sumar tiempos (datetime) en sql? Quiero algo como el
SUM, pero para datetime. Muchas gracias!!

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
15/11/2006 - 19:45 | Informe spam
,

Por que no posteas la estructura de la tabla, data de ejemplo y resultados
esperados?

Ayudanos para poder ayudarte.

Puedes convertir las horas y minutos a segundos, sumar los segundos y luego
convertir la suma a horas - minutos.


AMB

"" wrote:

Hola, gracias por responder.

Yo tengo un campo de Tiempo, que es las horas y minutos que han estado
los trabajadores arreglando una cierta máquina. Y lo que quiero es
saber el total de horas que se han invertido en tal máquina al cabo
del año.
Ej: 02:34 + 1:26 + 0:45 + 1:37

El dateadd no me sirve porque no tiene ninguna opción para sumar toda
la hora, sólo puedo sumar horas, minutos o segundos por separado.
Datediff tampoco me sirve :(

Alguna idea?


Maxi ha escrito:

> Hola, que quiere decir sumar Datetimes? por ej cual seria el resultado de:
> 1/1/2006 + 1/1/2007 ?
>
>
> Salu2
>
> Microsoft MVP SQL Server
> Culminis Speaker
> INETA Speaker
>
> escribió en el mensaje
> news:
> > Hola, como puedo sumar tiempos (datetime) en sql? Quiero algo como el
> > SUM, pero para datetime. Muchas gracias!!
> >


Respuesta Responder a este mensaje
#7 kdokdo
16/11/2006 - 00:27 | Informe spam
Estoy utilizando el sql server 2000.

Es que la estructura de la tabla da igual...
Es el simple hecho de poder sumar tiempos...

Dattediff no es para saber la diferencia que hay entre un tiempo y
otro?

Como lo hago para pasarlo a segundos y al revés?

Ahora que pienso sería más cómodo y fácil expresarlo todo en
minutos (no necesito segundos) y poner un simple int en vez de un
datetime y ya lo transformaré y le pondré la máscara después?
Supongo que tendría que haber hecho eso de buen principio...



Alejandro Mesa ha escrito:

,

Por que no posteas la estructura de la tabla, data de ejemplo y resultados
esperados?

Ayudanos para poder ayudarte.

Puedes convertir las horas y minutos a segundos, sumar los segundos y luego
convertir la suma a horas - minutos.


AMB

"" wrote:

> Hola, gracias por responder.
>
> Yo tengo un campo de Tiempo, que es las horas y minutos que han estado
> los trabajadores arreglando una cierta máquina. Y lo que quiero es
> saber el total de horas que se han invertido en tal máquina al cabo
> del año.
> Ej: 02:34 + 1:26 + 0:45 + 1:37
>
> El dateadd no me sirve porque no tiene ninguna opción para sumar toda
> la hora, sólo puedo sumar horas, minutos o segundos por separado.
> Datediff tampoco me sirve :(
>
> Alguna idea?
>
>
> Maxi ha escrito:
>
> > Hola, que quiere decir sumar Datetimes? por ej cual seria el resultado de:
> > 1/1/2006 + 1/1/2007 ?
> >
> >
> > Salu2
> >
> > Microsoft MVP SQL Server
> > Culminis Speaker
> > INETA Speaker
> >
> > escribió en el mensaje
> > news:
> > > Hola, como puedo sumar tiempos (datetime) en sql? Quiero algo como el
> > > SUM, pero para datetime. Muchas gracias!!
> > >
>
>
Respuesta Responder a este mensaje
#8 Javier Loria
16/11/2006 - 04:02 | Informe spam
Hola:
Las horas cuando estan almacenadas como smalldatetimes se pueden sumar
sin problema. Por ejemplo:
=ÞCLARE @Uno SMALLDATETIME
DECLARE @Dos SMALLDATETIME
SET @Uno='00:30'
SET @Dos='00:45'

SELECT @Uno, @Dos, CONVERT(VARCHAR(8),@Uno+@Dos, 108)
== Hay que tener particular cuidado de que no se pasen la suma de las 24
horas, porque entonces se pierde ya que da "vuelva" al dia.
Es una lastima que no se hayan incluido tipos para Fechas, Tiempo y para
Periodos en SQL 2000 o 2005
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

wrote in message
news:
Hola, gracias por responder.

Yo tengo un campo de Tiempo, que es las horas y minutos que han estado
los trabajadores arreglando una cierta máquina. Y lo que quiero es
saber el total de horas que se han invertido en tal máquina al cabo
del año.
Ej: 02:34 + 1:26 + 0:45 + 1:37

El dateadd no me sirve porque no tiene ninguna opción para sumar toda
la hora, sólo puedo sumar horas, minutos o segundos por separado.
Datediff tampoco me sirve :(

Alguna idea?


Maxi ha escrito:

Hola, que quiere decir sumar Datetimes? por ej cual seria el resultado de:
1/1/2006 + 1/1/2007 ?


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

escribió en el mensaje
news:
> Hola, como puedo sumar tiempos (datetime) en sql? Quiero algo como el
> SUM, pero para datetime. Muchas gracias!!
>
Respuesta Responder a este mensaje
#9 Alejandro Mesa
16/11/2006 - 14:34 | Informe spam
,

Lee en los libros en linea sobre las funciones DATEPART y DATENAME.

use northwind
go

create table #t (
c1 int not null identity primary key,
c2 int not null,
c3 datetime not null
)
go

insert into #t(c2, c3) values(1, '2006-11-14T08:05:00')
insert into #t(c2, c3) values(1, '2006-11-15T09:15:00')
insert into #t(c2, c3) values(1, '2006-11-16T08:00:00')
insert into #t(c2, c3) values(2, '2006-11-15T08:05:00')
insert into #t(c2, c3) values(2, '2006-11-16T09:25:00')
go

select
c2,
sum((datepart(hour, c3) * 60) + datepart(minute, c3)) / 60 as h,
sum((datepart(hour, c3) * 60) + datepart(minute, c3)) % 60 as m
from
#t
group by
c2
order by
c2
go

drop table #t
go


AMB

"" wrote:

Estoy utilizando el sql server 2000.

Es que la estructura de la tabla da igual...
Es el simple hecho de poder sumar tiempos...

Dattediff no es para saber la diferencia que hay entre un tiempo y
otro?

Como lo hago para pasarlo a segundos y al revés?

Ahora que pienso sería más cómodo y fácil expresarlo todo en
minutos (no necesito segundos) y poner un simple int en vez de un
datetime y ya lo transformaré y le pondré la máscara después?
Supongo que tendría que haber hecho eso de buen principio...



Alejandro Mesa ha escrito:

> ,
>
> Por que no posteas la estructura de la tabla, data de ejemplo y resultados
> esperados?
>
> Ayudanos para poder ayudarte.
>
> Puedes convertir las horas y minutos a segundos, sumar los segundos y luego
> convertir la suma a horas - minutos.
>
>
> AMB
>
> "" wrote:
>
> > Hola, gracias por responder.
> >
> > Yo tengo un campo de Tiempo, que es las horas y minutos que han estado
> > los trabajadores arreglando una cierta máquina. Y lo que quiero es
> > saber el total de horas que se han invertido en tal máquina al cabo
> > del año.
> > Ej: 02:34 + 1:26 + 0:45 + 1:37
> >
> > El dateadd no me sirve porque no tiene ninguna opción para sumar toda
> > la hora, sólo puedo sumar horas, minutos o segundos por separado.
> > Datediff tampoco me sirve :(
> >
> > Alguna idea?
> >
> >
> > Maxi ha escrito:
> >
> > > Hola, que quiere decir sumar Datetimes? por ej cual seria el resultado de:
> > > 1/1/2006 + 1/1/2007 ?
> > >
> > >
> > > Salu2
> > >
> > > Microsoft MVP SQL Server
> > > Culminis Speaker
> > > INETA Speaker
> > >
> > > escribió en el mensaje
> > > news:
> > > > Hola, como puedo sumar tiempos (datetime) en sql? Quiero algo como el
> > > > SUM, pero para datetime. Muchas gracias!!
> > > >
> >
> >


Respuesta Responder a este mensaje
#10 kdokdo
17/11/2006 - 15:34 | Informe spam
Gracias chicos


Alejandro Mesa ha escrito:

,

Lee en los libros en linea sobre las funciones DATEPART y DATENAME.

use northwind
go

create table #t (
c1 int not null identity primary key,
c2 int not null,
c3 datetime not null
)
go

insert into #t(c2, c3) values(1, '2006-11-14T08:05:00')
insert into #t(c2, c3) values(1, '2006-11-15T09:15:00')
insert into #t(c2, c3) values(1, '2006-11-16T08:00:00')
insert into #t(c2, c3) values(2, '2006-11-15T08:05:00')
insert into #t(c2, c3) values(2, '2006-11-16T09:25:00')
go

select
c2,
sum((datepart(hour, c3) * 60) + datepart(minute, c3)) / 60 as h,
sum((datepart(hour, c3) * 60) + datepart(minute, c3)) % 60 as m
from
#t
group by
c2
order by
c2
go

drop table #t
go


AMB

"" wrote:

> Estoy utilizando el sql server 2000.
>
> Es que la estructura de la tabla da igual...
> Es el simple hecho de poder sumar tiempos...
>
> Dattediff no es para saber la diferencia que hay entre un tiempo y
> otro?
>
> Como lo hago para pasarlo a segundos y al revés?
>
> Ahora que pienso sería más cómodo y fácil expresarlo todo en
> minutos (no necesito segundos) y poner un simple int en vez de un
> datetime y ya lo transformaré y le pondré la máscara después?
> Supongo que tendría que haber hecho eso de buen principio...
>
>
>
> Alejandro Mesa ha escrito:
>
> > ,
> >
> > Por que no posteas la estructura de la tabla, data de ejemplo y resultados
> > esperados?
> >
> > Ayudanos para poder ayudarte.
> >
> > Puedes convertir las horas y minutos a segundos, sumar los segundos y luego
> > convertir la suma a horas - minutos.
> >
> >
> > AMB
> >
> > "" wrote:
> >
> > > Hola, gracias por responder.
> > >
> > > Yo tengo un campo de Tiempo, que es las horas y minutos que han estado
> > > los trabajadores arreglando una cierta máquina. Y lo que quiero es
> > > saber el total de horas que se han invertido en tal máquina al cabo
> > > del año.
> > > Ej: 02:34 + 1:26 + 0:45 + 1:37
> > >
> > > El dateadd no me sirve porque no tiene ninguna opción para sumar toda
> > > la hora, sólo puedo sumar horas, minutos o segundos por separado.
> > > Datediff tampoco me sirve :(
> > >
> > > Alguna idea?
> > >
> > >
> > > Maxi ha escrito:
> > >
> > > > Hola, que quiere decir sumar Datetimes? por ej cual seria el resultado de:
> > > > 1/1/2006 + 1/1/2007 ?
> > > >
> > > >
> > > > Salu2
> > > >
> > > > Microsoft MVP SQL Server
> > > > Culminis Speaker
> > > > INETA Speaker
> > > >
> > > > escribió en el mensaje
> > > > news:
> > > > > Hola, como puedo sumar tiempos (datetime) en sql? Quiero algo como el
> > > > > SUM, pero para datetime. Muchas gracias!!
> > > > >
> > >
> > >
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida