En MS Reporting Services 2008, tengo un campo que tiene una duración almacenada como segundos. ¿Hay alguna manera hábil de introducirlo en formato hh: mm: ss en una sección de grupo del informe?Cómo mostrar un intervalo de segundos en formato hh: mm: ss en Reporting Services
Respuesta
Si lo que desea es mostrar que, convierta en una expresión para el valor del cuadro de texto:
=Format(DateAdd("s", Fields!MySecondsField.Value, "00:00:00"), "HH:mm:ss")
Si usted quiere hacer cálculos sobre el mismo, convertir los segundos a un DateTime en su conjunto de datos. Uso de SQL:
SELECT DATEADD(ss, MySecondsField, '1900-01-01') AS SecondsAsDateTime
FROM TimeTable
en LINQ esto sería algo así como:
var qry = from Q in t.TimeList
select new
{
SecondsAsDateTime = DateTime.Today.AddSeconds(Q.MySecondsField)
};
a continuación, puedes formatearlo como un DateTime normal.
Si necesita trabajar con tiempos superiores a 24 horas (la solución de Chris Latta será integral en estos casos), entonces hay un par de soluciones.
fórmula sencilla
Si desea sólo tiene que utilizar una fórmula en el campo como lo siguiente de this thread, (que también une de nuevo a esta pregunta)!
=int(sum(Fields!Sec_Online.Value)/3600) & ":" & int((sum(Fields!Sec_Online.Value) Mod 3600)/60) & ":" & (sum(Fields!Sec_Online.Value) Mod 3600) Mod 60
Si necesita rellenar su valor a 2 caracteres se puede envolver alrededor de un RIGHT("0" & {X}, 2)
cada subsección, donde {x}
indica uno de los cálculos individuales en la fórmula anterior.
Código Detrás
Otro enfoque, también se sugiere en este hilo, es utilizar TimeSpan.FromSeconds
(doc), y hay una aplicación de que en esta blog, utilizando código personalizado atrás en el informe.
Terminé usando el enfoque de código personalizado (ya que tenía muchos campos que lo compartían), y combinándolo con algo más parecido al primer método porque no quería que empezaran a aparecer días solo quería horas para contar más grande que 23.
he añadido algunos custom code el informe de la siguiente manera, que rellena todos los valores de al menos 2 caracteres, y permite horas a contar hasta hora> 23.
Public Function ConvertSecondsToHourMinSec(ByVal intTotalSeconds) As String
Dim hours As String =INT(intTotalSeconds/3600)
If Len(hours) < 2 Then
hours = RIGHT(("0" & hours), 2)
End If
Dim mins As String = RIGHT("0" & INT((intTotalSeconds MOD 3600)/60), 2)
Dim secs AS String = RIGHT("0" & ((intTotalSeconds MOD 3600) MOD 60), 2)
ConvertSecondsToHourMinSec = hours & ":" & mins & ":" & secs
End Function
y luego llamaron a este el uno celda en preguntas de la siguiente manera:
=code.ConvertSecondsToHourMinSec(Fields!MyField.Value)
¡Espero que esto ayude a otra persona!
uso de una función como esta:
Public Function ConvertTsToHMS(myValue As long) As String
'Dim ts as TimeSpan = TimeSpan.FromTicks(myValue)
Dim ts as TimeSpan = TimeSpan.FromSeconds(myValue)
return Int(ts.TotalHours).ToString("00") + ":" + Int(ts.Minutes).ToString("00") + ":" + ts.Seconds.ToString("00")
End Function
Uso expresión a continuación, vuelva a colocar en negrilla con el campo que contiene los segundos variable.
= DateAdd (DateInterval.Second, Sum (Fields! TotalDuration.Value), CDate ("1900-01-01 00:00:00"))
I se aplican siempre formating en el cuadro de texto Properties-
H "h "m" m "s" s" se mostrará como "2h 16m 5s"
He utilizado la idea de Xan recientemente y debido a que el número de segundos que tengo es bastante grande, me quedé sin límite de tipo entero. Por lo tanto, he diseñado un enfoque diferente - tal vez someobody encontrará útil :)
que necesitaba para crear campos calculados para horas, minutos y segundos - se usa fórmulas siguientes:
- XXXNumberOfHours = int (campos TimeInSec!. valor/3600)
- XXXNumberOfMinutes = int ((Fields! TimeInSec.Value Mod 3600)/60)
- XXXNumberOfSeconds = = ((Fields! TimeInSec.Value Mod 3600) mod 60)
Entonces creé una expresión para mostrar los segundos en HH: MM: SS (sin fin de semana - no es necesario que) Formato:
(Sum(Fields!LWTNumberOfHours.Value)+int((Sum(Fields!LWTNumberOfMinutes.Value) + int(Sum(Fields!LWTNumberOfSeconds.Value)/60))/60))
& ":" &
right("0" & (Sum(Fields!LWTNumberOfMinutes.Value) +
int(Sum(Fields!LWTNumberOfSeconds.Value)/60)) Mod 60, 2)
& ":" &
right("0" & Sum(Fields!LWTNumberOfSeconds.Value) Mod 60, 2)
In las líneas anteriores pueden ver que la línea (1) calcula el número de horas, la línea (3) calcula el número de minutos y la línea (5) calcula el número de segundos. Por supuesto, puede observar que se realizan cálculos adicionales para obtener la cantidad de minutos completos de XXNumberOfSeconds y lo mismo se aplica a Minutos/Horas. Esto también podría hacerse en los campos calculados (y tal vez incluso sería más correcto hacerlo :)); sin embargo, preferí usar el enfoque anterior.
De esta manera pude formatear números muy grandes de segundos que exceden el tamaño de número entero.
- 1. Cómo convertir los segundos en este formato "HH: mm: ss"
- 2. ¿Convertir tiempo en formato HH: MM: SS a segundos solamente?
- 3. Convertir TimeSpan de formato "hh: mm: ss" a "hh: mm"
- 4. Formato de fecha en dd/mm/aaaa hh: mm: ss
- 5. La salida está en segundos. convertir a formato hh: mm: ss en php
- 6. Formateo de segundos en hh: ii: ss
- 7. Muestra la hora actual en este formato: HH: mm: ss
- 8. ¿Cómo convertirías los segundos a formato HH: MM: SS en SQLite?
- 9. Hora actual en HH: MM: ¿formato SS am/pm?
- 10. Cómo convertir un decimal en tiempo, ej. HH: MM: SS
- 11. Usando un NSTimer para HH: MM: SS?
- 12. Tiempo en cadena con formato HH: MM: SS (programación C)
- 13. PostgreSQL - Cómo convertir segundos en un campo numérico a HH: MM: SS
- 14. Cómo mostrar la fecha en formato HH: mm: ss en JasperReports?
- 15. NSTimeInterval a HH: mm: ss?
- 16. Programa para convertir el tiempo en segundos a formato hh: mm: ss
- 17. Cómo formatear una fecha en formato MM/dd/aaaa HH: mm: ss en JavaScript?
- 18. ¿Hay una función de Matlab para convertir segundos transcurridos a formato HH: MM: SS?
- 19. SQL Server Formato Fecha DD.MM.YYYY HH: MM: SS
- 20. Forma simple de convertir HH: MM: SS (horas: minutos: segundos segundos) a segundos
- 21. Conversión de marca de tiempo en Oracle para YYYY-MM-DD HH: MM: SS formato
- 22. formato intervalo de tiempo para mostrar horas, minutos, segundos
- 23. Convertir segundos enteros a HH: MM, iPhone
- 24. ¿Cómo convierto hh: mm: ss a hh: mm en SQL Server?
- 25. ¿Hay un nombre para el formato de fecha "AAAA-MM-DD HH: MM: SS"?
- 26. Delphi: Simple hh: mm: ss Temporizador
- 27. ¿Cómo convierto HH: MM: SS en solo segundos usando C# .net?
- 28. tiempo WPF Datagrid formato hh: mm campo
- 29. ¿Cómo puedo comparar dos cadenas de tiempo en el formato HH: MM: SS?
- 30. Patrón Regex para HH: MM: cadena de tiempo SS
su "00:00:00" se puede cambiar a solo 0. – jimconstable
Funciona perfectamente para todas las duraciones <24 h. – xan
Funciona muy bien para timespans individuales, pero no funciona cuando desea agregar los resultados – flup