minutos em horas

Delphi

18/07/2005

Tenho um campo inteiro, em uma tabela do sql server, onde é digitado um valor em minutos...
Preciso converter estes minutos em horas, e colocar no formato hh:mm

Exemplo :

509 minutos = 08:29

212 minutos = 3:32

:?: :roll:


Arc

Arc

Curtidas 0

Respostas

Massuda

Massuda

18/07/2005

Preciso converter estes minutos em horas, e colocar no formato hh:mm...
Nesse caso:

horas = total_de_minutos div 60;
minutos = total_de_minutos mod 60;

daí ficaria algo assim:
var
  TotalDeMinutos: Integer;
  S: string;
...
  S := Format(´¬d:¬02.2d´, [
    TotalDeMinutos div 60,
    TotalDeMinutos mod 60
  ]);



GOSTEI 0
Arc

Arc

18/07/2005

Eu preciso fazer isso em um SELECT :wink:


GOSTEI 0
Biffi

Biffi

18/07/2005

Acredito que vc precise de mais de um cálculo para fazer a conversão...

Divida o valor de minutos por 60 e o resto da divisão será o valor em minutos.

509 / 60 = 8 e sobram 29
509 div 60 = 8
509 mod 60 = 29

Espero não ter chovido no molhado...

Valew


GOSTEI 0
Arc

Arc

18/07/2005

Preciso fazer realmente em um Select, só não quero fazer gambiarras

:roll:


GOSTEI 0
Rjun

Rjun

18/07/2005

Acho que não tem como você fazer isso em um select. O que você pode fazer é criar uma função no SQL Server que faça a conversão e retorne uma string com o que você quer exibir. Ai você pode utilizar a função dentro do seu select.


GOSTEI 0
Rjun

Rjun

18/07/2005

Bom, acabei de fazer um teste, e acho q dá pra fazer assim :

select cast (minutos / 60 as varchar) + ´:´ + cast (minutos - ((minutos / 60) * 60) as varchar)


Veja se funciona. E não esquece de dar o retorno.


GOSTEI 0
Fabiana Santos

Fabiana Santos

18/07/2005

A solução apresentada por RJUN me atendeu... Também estava precisando converter minutos em horas e não gostaria de criar uma função no banco. Muito obrigada!
GOSTEI 0
Everton Santos

Everton Santos

18/07/2005

SE FOR O MYSQL FICA ASSIM

SELECT CONCAT((212 DIV 60),':',ROUND(((212/60) - (212 DIV 60)) * 100,0))

RETORNA 3:53
GOSTEI 0
Everton Santos

Everton Santos

18/07/2005

ONDE 212 É O SEU CAMPO
GOSTEI 0
POSTAR