none
Trabalhar com Horas RRS feed

  • Pergunta

  • Tenho que armazenar o total de horas de um projeto, no entanto seu eu utilizar um campo DateTime, vou ter problema, pois ali só armazena o formato de horas.
    Por exemplo eu tenho vários projetos, com 10h30m, 50h23m.
    Qual o formato do campo dentro do banco de dados que devo usar para armazenar essa informação?
    Depois preciso somar todos os projetos, neste exemplo, teria uma reposta de 60h53m.
    Como vou fazer calculo o campo não pode ser string, então preciso fazer uma função para fazer a conversão, como resolver esse problema?
    Obrigado

    quarta-feira, 12 de agosto de 2009 21:37

Todas as Respostas

  • Usa o TimeSpam na aplicaçao e grava o valor do Tick como BigInt no Banco de Dados

        class Program {
            static void Main(string[] args) {
                var proja = new TimeSpan(10, 30, 0);
                var projb = new TimeSpan(50, 23, 0);
                var total = proja.Add(projb);
    
                Console.WriteLine("Long");
                Console.WriteLine("Projeto A: {0}", proja.Ticks);
                Console.WriteLine("Projeto B: {0}", projb.Ticks);
                Console.WriteLine("Total: {0}", total.Ticks);
                Console.WriteLine();
                Console.WriteLine("TimeSpan");
                Console.WriteLine("Projeto A: {0}", proja);
                Console.WriteLine("Projeto B: {0}", projb);
                Console.WriteLine("Total: {0}", total);
    
                Console.ReadKey();
            }
        }

    Long
    Projeto A: 378000000000
    Projeto B: 1813800000000
    Total: 2191800000000
    
    TimeSpan
    Projeto A: 10:30:00
    Projeto B: 2.02:23:00
    Total: 2.12:53:00
    


    What would Brian Boitano do ?
    quinta-feira, 13 de agosto de 2009 03:38
    Moderador
  • Só uma dúvida, estou utiilizando como banco de dados o Access, esse BigInt é pode ser o Double?
    quinta-feira, 13 de agosto de 2009 09:31
  • Ih... meu faz tempo q nao uso Access.... o campo tem que caber um numero inteiro de 64bits

    o que vc pode adaptar em ultimos casos é utulizar um campo inteiro e dividir o valor do Ticks por 1000000 na hora de gravar e multiplicar por 1000000 denovo na hora de carregar os TimeSpans


    What would Brian Boitano do ?
    quinta-feira, 13 de agosto de 2009 17:19
    Moderador
  • Venildo,

    Veja se este artigo te ajuda -:> http://support.microsoft.com/kb/210276



    Abs,
    Nelson Borges - http://nelsonborgesjr.spaces.live.com/blog/
    domingo, 16 de agosto de 2009 22:37