Formato de horas acumuladas

02/07/2007 - 19:04 por mapache | Informe spam
Estimados he buscado la forma de usar la función convert para informar un
total de horas que supera las 24 y por lo que veo todas las opciones separan
en días y horas.

Ejemplo: Sumo 20:00 horas más 10:00 horas y en lugar de aparecer 30:00 horas
me aparece 01/01/1900 6:00

En resumen, ¿cómo formateo un tipo datetime para que me muestre horas
acumuladas (no días) aún cuando superan las 24 hs?

Gracias a todos

Preguntas similare

Leer las respuestas

#1 Isaias
02/07/2007 - 19:36 | Informe spam
Todo indica que es un problema del uso de las funciones, para SUMAR (Restar)
horas, utilizas:

DATEADD(hh, 30, Getdate())

Para saber cuantas horas has acumulado utilizas, DATEDIFF()
Saludos
IIslas


"mapache" wrote:

Estimados he buscado la forma de usar la función convert para informar un
total de horas que supera las 24 y por lo que veo todas las opciones separan
en días y horas.

Ejemplo: Sumo 20:00 horas más 10:00 horas y en lugar de aparecer 30:00 horas
me aparece 01/01/1900 6:00

En resumen, ¿cómo formateo un tipo datetime para que me muestre horas
acumuladas (no días) aún cuando superan las 24 hs?

Gracias a todos





Respuesta Responder a este mensaje
#2 Jesús López
02/07/2007 - 23:00 | Informe spam
Un ejemplo:

DECLARE @fecha1 datetime
DECLARE @fecha2 datetime

SET @fecha1 = GETDATE()

SET @fecha2 = DATEADD(hh, 20, @fecha1)

SET @fecha2 = DATEADD(hh, 20, @fecha2)

SELECT DATEDIFF(hh, @fecha1, @fecha2) AS [Horas de diferencia]

Sale esto:

Horas de diferencia
-
40

(1 row(s) affected)

Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"mapache" escribió en el mensaje
news:
Estimados he buscado la forma de usar la función convert para informar un
total de horas que supera las 24 y por lo que veo todas las opciones
separan
en días y horas.

Ejemplo: Sumo 20:00 horas más 10:00 horas y en lugar de aparecer 30:00
horas
me aparece 01/01/1900 6:00

En resumen, ¿cómo formateo un tipo datetime para que me muestre horas
acumuladas (no días) aún cuando superan las 24 hs?

Gracias a todos




Respuesta Responder a este mensaje
#3 mapache
03/07/2007 - 20:00 | Informe spam
Muchas gracias, he resuelto muchas cosas. De todas formas ahora me ha
surgido otro tema realcionado pero que no logro reslver, vean:

Tengo un campo de tipo entero que registra plazos de tiempo en segundos, por
ejemplo puede guardar el número 115200 que correspondería a 32 horas ó a un
día y ocho horas según cómo quiera leerse. Yo necesito mostrar ese número
con formato de horas acumuladas, para el ejemplo necesitaría que aparezca
"32:00".
En definitiva lo que quisiera es pasar el número 115200 a un número de tipo
fecha interpretable por la máquina (sería 115200 /86400 siendo 86400 la
cantidad de segundos de un día). Ese número 115200/86400 quiero darle
formato de horas acumuladas... ¿sugerencias? No encuentro en la función
convert ningún valor del tercer parámetro (style) que lo haga.

Gracias

"Jesús López" wrote in message
news:
Un ejemplo:

DECLARE @fecha1 datetime
DECLARE @fecha2 datetime

SET @fecha1 = GETDATE()

SET @fecha2 = DATEADD(hh, 20, @fecha1)

SET @fecha2 = DATEADD(hh, 20, @fecha2)

SELECT DATEDIFF(hh, @fecha1, @fecha2) AS [Horas de diferencia]

Sale esto:

Horas de diferencia
-
40

(1 row(s) affected)

Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"mapache" escribió en el mensaje
news:
> Estimados he buscado la forma de usar la función convert para informar


un
> total de horas que supera las 24 y por lo que veo todas las opciones
> separan
> en días y horas.
>
> Ejemplo: Sumo 20:00 horas más 10:00 horas y en lugar de aparecer 30:00
> horas
> me aparece 01/01/1900 6:00
>
> En resumen, ¿cómo formateo un tipo datetime para que me muestre horas
> acumuladas (no días) aún cuando superan las 24 hs?
>
> Gracias a todos
>
>
>
>


Respuesta Responder a este mensaje
#4 Jesús López
04/07/2007 - 00:58 | Informe spam
No estoy seguro de que sea lo que buscas, pero con el siguiente código
formateas los segundos como hh:mm:ss

DECLARE @Segundos int
SET @Segundos = 115414

SELECT CONVERT(varchar, @Segundos / 3600) + ':' +
RIGHT('0' + CONVERT(varchar, (@Segundos % 3600) / 60), 2) + ':' +
RIGHT('0' + CONVERT(varchar, (@Segundos % 60)), 2)



Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"mapache" escribió en el mensaje
news:
Muchas gracias, he resuelto muchas cosas. De todas formas ahora me ha
surgido otro tema realcionado pero que no logro reslver, vean:

Tengo un campo de tipo entero que registra plazos de tiempo en segundos,
por
ejemplo puede guardar el número 115200 que correspondería a 32 horas ó a
un
día y ocho horas según cómo quiera leerse. Yo necesito mostrar ese número
con formato de horas acumuladas, para el ejemplo necesitaría que aparezca
"32:00".
En definitiva lo que quisiera es pasar el número 115200 a un número de
tipo
fecha interpretable por la máquina (sería 115200 /86400 siendo 86400 la
cantidad de segundos de un día). Ese número 115200/86400 quiero darle
formato de horas acumuladas... ¿sugerencias? No encuentro en la función
convert ningún valor del tercer parámetro (style) que lo haga.

Gracias

"Jesús López" wrote in message
news:
Un ejemplo:

DECLARE @fecha1 datetime
DECLARE @fecha2 datetime

SET @fecha1 = GETDATE()

SET @fecha2 = DATEADD(hh, 20, @fecha1)

SET @fecha2 = DATEADD(hh, 20, @fecha2)

SELECT DATEDIFF(hh, @fecha1, @fecha2) AS [Horas de diferencia]

Sale esto:

Horas de diferencia
-
40

(1 row(s) affected)

Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"mapache" escribió en el mensaje
news:
> Estimados he buscado la forma de usar la función convert para informar


un
> total de horas que supera las 24 y por lo que veo todas las opciones
> separan
> en días y horas.
>
> Ejemplo: Sumo 20:00 horas más 10:00 horas y en lugar de aparecer 30:00
> horas
> me aparece 01/01/1900 6:00
>
> En resumen, ¿cómo formateo un tipo datetime para que me muestre horas
> acumuladas (no días) aún cuando superan las 24 hs?
>
> Gracias a todos
>
>
>
>






Respuesta Responder a este mensaje
#5 mapache
04/07/2007 - 14:30 | Informe spam
Jesús, estoy de acuerdo contigo, yo he escrito un código equivalente al que
me pasas para hacerlo, lo que ocuerre es que me resisto a creer que no esté
disponible la función que lo haga . Se trata tan solo una forma de
visualizar un número (que es lo que al fin es una fecha), un programa tan
sencillo como el Excel lo hace.

Muchas gracias, amigos ;)

"Jesús López" wrote in message
news:e%
No estoy seguro de que sea lo que buscas, pero con el siguiente código
formateas los segundos como hh:mm:ss

DECLARE @Segundos int
SET @Segundos = 115414

SELECT CONVERT(varchar, @Segundos / 3600) + ':' +
RIGHT('0' + CONVERT(varchar, (@Segundos % 3600) / 60), 2) + ':' +
RIGHT('0' + CONVERT(varchar, (@Segundos % 60)), 2)



Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"mapache" escribió en el mensaje
news:
> Muchas gracias, he resuelto muchas cosas. De todas formas ahora me ha
> surgido otro tema realcionado pero que no logro reslver, vean:
>
> Tengo un campo de tipo entero que registra plazos de tiempo en segundos,
> por
> ejemplo puede guardar el número 115200 que correspondería a 32 horas ó a
> un
> día y ocho horas según cómo quiera leerse. Yo necesito mostrar ese


número
> con formato de horas acumuladas, para el ejemplo necesitaría que


aparezca
> "32:00".
> En definitiva lo que quisiera es pasar el número 115200 a un número de
> tipo
> fecha interpretable por la máquina (sería 115200 /86400 siendo 86400 la
> cantidad de segundos de un día). Ese número 115200/86400 quiero darle
> formato de horas acumuladas... ¿sugerencias? No encuentro en la función
> convert ningún valor del tercer parámetro (style) que lo haga.
>
> Gracias
>
> "Jesús López" wrote in message
> news:
>> Un ejemplo:
>>
>> DECLARE @fecha1 datetime
>> DECLARE @fecha2 datetime
>>
>> SET @fecha1 = GETDATE()
>>
>> SET @fecha2 = DATEADD(hh, 20, @fecha1)
>>
>> SET @fecha2 = DATEADD(hh, 20, @fecha2)
>>
>> SELECT DATEDIFF(hh, @fecha1, @fecha2) AS [Horas de diferencia]
>>
>> Sale esto:
>>
>> Horas de diferencia
>> -
>> 40
>>
>> (1 row(s) affected)
>>
>> Saludos:
>>
>> Jesús López.
>> Solid Quality Mentors
>> www.solidq.com
>>
>> "mapache" escribió en el mensaje
>> news:
>> > Estimados he buscado la forma de usar la función convert para


informar
> un
>> > total de horas que supera las 24 y por lo que veo todas las opciones
>> > separan
>> > en días y horas.
>> >
>> > Ejemplo: Sumo 20:00 horas más 10:00 horas y en lugar de aparecer


30:00
>> > horas
>> > me aparece 01/01/1900 6:00
>> >
>> > En resumen, ¿cómo formateo un tipo datetime para que me muestre horas
>> > acumuladas (no días) aún cuando superan las 24 hs?
>> >
>> > Gracias a todos
>> >
>> >
>> >
>> >
>>
>>
>
>


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