Como faço para saber a diferença entre duas datas no formato HH:MM:SS

1,775 views
Skip to first unread message

reinaldo junior

unread,
Mar 29, 2011, 12:19:34 PM3/29/11
to SQL Server Brasil
Boa tarde galera,
poderiam me dar uma ajuda estou querendo pegar a diferença de tempo
entre duas datas dtini e dtfim, só q o datediff() que eu achei só pega
a diferença somente em hora, ou somente em minuto ou somente em
segundo.
sera que existe alguma função no sql server que eu consigo pegar
HH:MM:SS ou tem como eu dividir o minuto por 60 e pegar o resto teria
alguma função para isso tbm??

Grato.

Jefferson M. Cirilo

unread,
Mar 29, 2011, 12:53:24 PM3/29/11
to sql-serv...@googlegroups.com
Ol� Reinaldo,

Acho que n�o entendi sua d�vida.
Voc� quer subitrair as datas, mas quer converter em
horas:minutos:segundos?

Por exemplo:

DataIni: 01/01/2011 10:00:00
DataFim 02/01/2011 11:00:00

Resultado: 25 horas

Voc� quer o resultado assim: 25:00:00 ?

� isso mesmo?

Atenciosamente,

Jefferson

----- Original Message -----
From: "reinaldo junior" <reinal...@gmail.com>
To: "SQL Server Brasil" <sql-serv...@googlegroups.com>
Sent: Tuesday, March 29, 2011 1:19 PM
Subject: [SQL Server Brasil] Como fa�o para saber a diferen�a entre duas
datas no formato HH:MM:SS


Boa tarde galera,
poderiam me dar uma ajuda estou querendo pegar a diferen�a de tempo
entre duas datas dtini e dtfim, s� q o datediff() que eu achei s� pega
a diferen�a somente em hora, ou somente em minuto ou somente em
segundo.
sera que existe alguma fun��o no sql server que eu consigo pegar


HH:MM:SS ou tem como eu dividir o minuto por 60 e pegar o resto teria

alguma fun��o para isso tbm??

Grato.

--
----------------------
Voc� recebeu essa mensagem porque voc� esta inscrito no grupo "SQL Server
Brasil" do Google Groups.
Para postar nesse grupo, envie mensagem para
sql-serv...@googlegroups.com
Para sair desse grupo, envie mensagem para
sql-server-bra...@googlegroups.com
Para mais op��es, visite a p�gina desse grupo em
http://groups.google.com/group/sql-server-brasil
----------------------
You received this message because you are subscribed to the Google Groups
"SQL Server Brasil" group.
To post to this group, send email to sql-serv...@googlegroups.com
To unsubscribe from this group, send email to
sql-server-bra...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sql-server-brasil

reinaldo junior

unread,
Mar 29, 2011, 1:03:56 PM3/29/11
to sql-serv...@googlegroups.com
Sim é isso msm, se for por exemplo


DataIni: 01/01/2011 10:00:00
DataFim 02/01/2011 12:25:11

resultado: 26:25:11

 

Em 29 de março de 2011 13:53, Jefferson M. Cirilo <jmci...@terra.com.br> escreveu:
Olá Reinaldo,

  Acho que não entendi sua dúvida.
  Você quer subitrair as datas, mas quer converter em horas:minutos:segundos?


  Por exemplo:

DataIni: 01/01/2011 10:00:00
DataFim 02/01/2011 11:00:00

Resultado: 25 horas

  Você quer o resultado assim: 25:00:00 ?

É isso mesmo?


Atenciosamente,

Jefferson

----- Original Message ----- From: "reinaldo junior" <reinal...@gmail.com>
To: "SQL Server Brasil" <sql-serv...@googlegroups.com>
Sent: Tuesday, March 29, 2011 1:19 PM
Subject: [SQL Server Brasil] Como faço para saber a diferença entre duas datas no formato HH:MM:SS



Boa tarde galera,
poderiam me dar uma ajuda estou querendo pegar a diferença de tempo
entre duas datas dtini e dtfim, só q o datediff() que eu achei só pega
a diferença somente em hora, ou somente em minuto ou somente em
segundo.
sera que existe alguma função no sql server que eu consigo pegar

HH:MM:SS ou tem como eu dividir o minuto por 60 e pegar o resto teria
alguma função para isso tbm??

Grato.

--
----------------------
Você recebeu essa mensagem porque você esta inscrito no grupo "SQL Server Brasil" do Google Groups.

Para postar nesse grupo, envie mensagem para sql-serv...@googlegroups.com
Para sair desse grupo, envie mensagem para sql-server-bra...@googlegroups.com
Para mais opções, visite a página desse grupo em http://groups.google.com/group/sql-server-brasil

----------------------
You received this message because you are subscribed to the Google Groups "SQL Server Brasil" group.
To post to this group, send email to sql-serv...@googlegroups.com
To unsubscribe from this group, send email to sql-server-bra...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sql-server-brasil

--
----------------------
Você recebeu essa mensagem porque você esta inscrito no grupo "SQL Server Brasil" do Google Groups.

Para postar nesse grupo, envie mensagem para sql-serv...@googlegroups.com
Para sair desse grupo, envie mensagem para sql-server-bra...@googlegroups.com
Para mais opções, visite a página desse grupo em http://groups.google.com/group/sql-server-brasil

----------------------
You received this message because you are subscribed to the Google Groups "SQL Server Brasil" group.
To post to this group, send email to sql-serv...@googlegroups.com
To unsubscribe from this group, send email to sql-server-bra...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sql-server-brasil



--
[]s

Reinaldo Junior

Jefferson M. Cirilo

unread,
Mar 29, 2011, 1:04:39 PM3/29/11
to sql-serv...@googlegroups.com
Corrigindo, subtrair.


----- Original Message -----
From: "reinaldo junior" <reinal...@gmail.com>
To: "SQL Server Brasil" <sql-serv...@googlegroups.com>
Sent: Tuesday, March 29, 2011 1:19 PM
Subject: [SQL Server Brasil] Como fa�o para saber a diferen�a entre duas
datas no formato HH:MM:SS


Boa tarde galera,


poderiam me dar uma ajuda estou querendo pegar a diferen�a de tempo
entre duas datas dtini e dtfim, s� q o datediff() que eu achei s� pega

a diferen�a somente em hora, ou somente em minuto ou somente em
segundo.
sera que existe alguma fun��o no sql server que eu consigo pegar


HH:MM:SS ou tem como eu dividir o minuto por 60 e pegar o resto teria

alguma fun��o para isso tbm??

Grato.

--
----------------------
Voc� recebeu essa mensagem porque voc� esta inscrito no grupo "SQL Server

Brasil" do Google Groups.
Para postar nesse grupo, envie mensagem para
sql-serv...@googlegroups.com
Para sair desse grupo, envie mensagem para
sql-server-bra...@googlegroups.com

Para mais op��es, visite a p�gina desse grupo em

Jefferson M. Cirilo

unread,
Mar 29, 2011, 1:29:46 PM3/29/11
to sql-serv...@googlegroups.com
Vê se isso ajuda:
 
declare @dataini datetime, @datafim datetime, @data datetime
declare @hora time
set @dataini = '2011-01-01 10:45:00'
set @datafim = '2011-01-02 13:00:00'
 
-- Com convert
select CONVERT(varchar(10), @datafim - @dataini, 108)
 
-- com tipo time
set @hora = @datafim - @dataini
select @hora
 
-- outra forma
select datepart(HOUR, CONVERT(datetime, @datafim - @dataini)) as 'horas',
       datepart(MINUTE, CONVERT(datetime, @datafim - @dataini)) as 'minutos',
       datepart(SECOND, CONVERT(datetime, @datafim - @dataini)) as 'segundos',
       CAST(datepart(HOUR, CONVERT(datetime, @datafim - @dataini)) as varchar(2)) +
       ':' + CAST(datepart(MINUTE, CONVERT(datetime, @datafim - @dataini)) as varchar(2)) +
       ':' + CAST(datepart(SECOND, CONVERT(datetime, @datafim - @dataini)) as varchar(2)) as 'convertido'
 
 
Abraços,

reinaldo junior

unread,
Mar 29, 2011, 2:01:33 PM3/29/11
to sql-serv...@googlegroups.com
por esse jeito ele n passa de 24 horas, quando xega no 24 ele acrescenta um dia e volta ao 0 eu achei um jeito aqui, e deu o que eu queria.

declare @dtini, @dtfim
set @dtini= '2011-01-01 10:45:00'
set @
dtfim= '2011-01-02 13:00:00' 
SELECT    Convert(varchar(10),DATEDIFF(n, dtini, dtfim)  / 60 )+':'+
        Convert(Varchar(10),DATEDIFF(n, dtini, dtfim)  % 60 )+':'+
        Convert(Varchar(10),DATEDIFF(s, dtini, dtfim)  % 60 )as tempo

obrigado ae pela ajuda
Reply all
Reply to author
Forward
0 new messages