Constancia

SQL_FUNC_TEMPO

Nov 28th, 2014
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.23 KB | None | 0 0
  1. CREATE FUNCTION [dbo].[TEMPO]  (@FECHA1 DATETIME,@FECHA2 DATETIME)
  2. RETURNS CHAR(8)
  3. AS
  4. BEGIN
  5.  
  6.  
  7. /*
  8. DECLARE @FECHA1 DATETIME
  9. DECLARE @FECHA2 DATETIME
  10. DECLARE @sTEMPO CHAR(8)
  11.  
  12. SELECT @FECHA1 = CONVERT(DATETIME,'28/11/2014 10:01:40')
  13. SELECT @FECHA2 = CONVERT(DATETIME,'28/11/2014 11:08:05')
  14.  
  15. SELECT @sTEMPO = dbo.TEMPO(@FECHA1,@FECHA2)
  16. PRINT @sTEMPO
  17.  
  18. */
  19.  
  20. DECLARE @HORAS CHAR(2),@MINUTOS CHAR(2),@SEGUNDOS CHAR(2)
  21. DECLARE @nHORAS INT,@nMINUTOS INT,@nSEGUNDOS INT
  22. DECLARE @CadTempo CHAR(8)
  23.  
  24. SELECT @nSEGUNDOS = DATEDIFF(ss,@FECHA1,@FECHA2)
  25. --PRINT '@nSEGUNDOS : ' + CONVERT(VARCHAR,@nSEGUNDOS)
  26.  
  27. SELECT @nHORAS = @nSEGUNDOS /3600
  28. SELECT @HORAS = RIGHT('0' + CONVERT(VARCHAR,@nHORAS),2) + ':'
  29. --PRINT '@HORAS : ' + @HORAS
  30.  
  31. SELECT @nSEGUNDOS = @nSEGUNDOS -(@nHORAS*3600)
  32. --PRINT '@nSEGUNDOS : ' + CONVERT(VARCHAR,@nSEGUNDOS)
  33.  
  34.  
  35. SELECT @nMINUTOS = @nSEGUNDOS/60
  36. SELECT @MINUTOS = RIGHT('0' + CONVERT(VARCHAR,@nMINUTOS),2)
  37. --PRINT '@MINUTOS : ' + @MINUTOS
  38.  
  39. SELECT @nSEGUNDOS = @nSEGUNDOS -(@nMINUTOS*60)
  40. SELECT @SEGUNDOS = RIGHT('0' + CONVERT(VARCHAR,@nSEGUNDOS),2)
  41. --PRINT '@SEGUNDOS : ' + @SEGUNDOS
  42.  
  43. SELECT @CadTempo = @HORAS +':'+ @MINUTOS +':'+ @SEGUNDOS
  44. --PRINT '@CadTempo : ' + @CadTempo
  45.  
  46. RETURN @CadTempo
  47.  
  48. END
Advertisement
Add Comment
Please, Sign In to add comment