rootzig 1 Denunciar post Postado Janeiro 24, 2017 Olá, Gostaria de uma ajuda se é possível fazer isso direto no mysql. Tenho um campo na minha tabela que grava a data e hora. Exemplo: 2017-01-24 14:12:37 2017-01-24 14:12:30 2017-01-24 14:12:15 2017-01-24 14:11:47 2017-01-24 14:11:19 2017-01-24 14:10:50 2017-01-24 14:10:25 2017-01-24 14:10:23 2017-01-24 14:10:19 Quero pegar a diferença entre cada data e ir somando. Será que alguém pode me ajudar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 24, 2017 Esta tabela tem chave primária ? SELECT T2.DATA - T1.DATA FROM TABELA T1,TABELA T2 WHERE T1.CHAVE = T2.CHAVE-1 Compartilhar este post Link para o post Compartilhar em outros sites
rootzig 1 Denunciar post Postado Janeiro 24, 2017 Olá, Motta. Perfeito!!! Deu muito certo. Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
rootzig 1 Denunciar post Postado Janeiro 25, 2017 Mais uma vez aqui! Estou com um dúvida! Os valores estão OK, mais quero pegar de um único cliente. Do jeito que tentei ele não traz todos os valores. Eu preciso pegar somente o resultado do cliente de código 20 da coluna src. Essa consulta só está retornando uma linha. Dessa data tem mais de 30 registros. SELECT T1.src, T1.id, T1.data, T2.src, T2.id, T2.data, SEC_TO_TIME( ( ABS( UNIX_TIMESTAMP( T2.data ) - UNIX_TIMESTAMP( T1.data ) ) ) ) AS tempo_total, SEC_TO_TIME(T1.duracao) as t1,SEC_TO_TIME(T2.duracao) as t2 FROM tabela T1, tabela T2 WHERE T1.id = ( T2.id -1 ) AND T1.src = '20' AND T2.src = '20' AND DATE( T1.data ) = '2017-01-25' AND DATE( T2.data ) = '2017-01-25' Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 25, 2017 o campo "data" tm data e hora ? Pode ser isto Compartilhar este post Link para o post Compartilhar em outros sites
rootzig 1 Denunciar post Postado Janeiro 25, 2017 Então Motta, É o mesmo campo onde está fazendo a diferença entre as datas. Queria usar esse mesmo campo pra filtrar a somente os dados de Hoje por exemplo. A minha tabela esta mais ou menos assim pra você entender. Preciso fazer a media como já está pegando somente a data de hoje por exemplo com o codigo do cliente 20. id | src |data 1 | 20 |2017-01-25 14:03:12 2 | 20 |2017-01-25 14:01:40 3 | 20 |2017-01-25 14:01:18 4 | 21 |2017-01-25 13:59:43 5 | 21 |2017-01-25 13:59:12 Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 25, 2017 Usando a function DATE talvez. Compartilhar este post Link para o post Compartilhar em outros sites
rootzig 1 Denunciar post Postado Janeiro 25, 2017 Desculpa, Motta. Não entendi! Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Janeiro 25, 2017 Adicione o WHERE campodata = NOW() Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 25, 2017 Creio Where ... Date(data) = date(now()) Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Janeiro 26, 2017 Na verdade, se você quiser comparar usando apenas a data e ignorar o horário, utilize a forma passada pelo @motta. A forma que passei só trará o resultado quando a hora e a data for idêntica a que está cadastrada no DB. Compartilhar este post Link para o post Compartilhar em outros sites
rootzig 1 Denunciar post Postado Janeiro 27, 2017 Então, tentei de tudo e não mostra todos os resultados. Filtrando pela data e src. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 27, 2017 Publica a sql toda Compartilhar este post Link para o post Compartilhar em outros sites
rootzig 1 Denunciar post Postado Fevereiro 8, 2017 Olá, Motta. Então foi a sql que postei logo acima. Estou usando essa aqui: SELECT T1.src, T1.id, T1.data, T2.src, T2.id, T2.data, SEC_TO_TIME( ( ABS( UNIX_TIMESTAMP( T2.data ) - UNIX_TIMESTAMP( T1.data ) ) ) ) AS tempo_total, SEC_TO_TIME(T1.duracao) as t1,SEC_TO_TIME(T2.duracao) as t2 FROM tabela T1, tabela T2 WHERE T1.id = ( T2.id -1 ) AND T1.src = '20' AND T2.src = '20' AND DATE( T1.data ) = '2017-01-25' AND DATE( T2.data ) = '2017-01-25' Compartilhar este post Link para o post Compartilhar em outros sites