2010-06-09 4 views
1

Je souhaite convertir la durée d'exécution (depuis msdb..sysjobhistory) en secondes écoulées. La durée est stockée sous la forme d'un nombre entier, par exempleConversion de date SQL (serveur)

13  means 13 secs 
213 means 2 mins and 13 secs = 133 secs 
310213 means 31 hours, 2 mins and 13 secs = 111,733 secs 

Y a-t-il une manière simple de procéder?

Il est SQL Server 2000, mais je préférerais SQL

Répondre

4

générique Je ne pense pas qu'il y ait aucune façon ANSI propre à faire, ou même une belle façon en utilisant les extensions SQL Server 2000. Vous pouvez le faire comme suit:

(duration % 100) + 
(((duration/100) % 100) * 60) + 
(duration/10000) * 60 * 60 
+0

Cela fonctionne. Je n'avais pas pensé à utiliser le modulo - vous penseriez que ce serait en ascii. Je vais attendre pour voir s'il y a d'autres réponses – cindi