Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Olá, Motta.
Perfeito!!! Deu muito certo.
Muito obrigado!
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'o campo "data" tm data e hora ?
Pode ser isto
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
Usando a function DATEtalvez.
Desculpa, Motta.
Não entendi!
Adicione o
WHERE campodata = NOW()
Creio
Where ...
Date(data) = date(now())
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.
Então, tentei de tudo e não mostra todos os resultados.
Filtrando pela data e src.
Publica a sql toda
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'
Esta tabela tem chave primária ?
SELECT T2.DATA - T1.DATA
FROM TABELA T1,TABELA T2
WHERE T1.CHAVE = T2.CHAVE-1