Estou armazenando o último horário de login no MySQL em, datetime-type archive. Quando os usuários efetuam login, quero obter a diferença entre o último horário de login e o horário atual (que uso NOW()).
No seu caso, o terceiro parâmetro da TIMSTAMPDIFFfunção seria a hora atual de login ( NOW()). O segundo parâmetro seria o último horário de login, que já está no banco de dados.
Isso é para atualizar o último login certo ?? o que eu quero é como no stackoverflow sua pergunta postada 2s atrás, 30s atrás, 2 min atrás .. etc. Eu quero um tipo semelhante de funcionalidade. Por exemplo, há uma tabela como PEDIDOS (identificação, mensagem, registro de data e hora). o carimbo de data e hora durante o armazenamento será NOW (). enquanto executo uma consulta, selecione * de solicitações, em vez de exibir esse valor, ele deve exibir id, mensagem e quanto tempo a solicitação de retorno foi postada.
Devesh Agrawal
1
Enquanto estou executando a consulta SELECT TIMESTAMPDIFF (SECOND, NOW (), 'selecione lastLoginTime das solicitações em que id =' 2 ''). Está retornando NULL. Alguma idéia do porquê?
Devesh Agrawal
qual é a saída de select lastLoginTime de pedidos em que id = '2'?
FSP
SELECT TIMESTAMPDIFF (SECOND, NOW (), '2012-06-06 08:07:36'); Experimente!
FSP
Sim que está funcionando, mas preciso buscar o segundo parâmetro da tabela. Como conseguir isso. De fato, quero evitar consultas aninhadas. Qualquer ideia?
Respostas:
USE a
TIMESTAMPDIFF
função MySQL. Por exemplo, você pode usar:No seu caso, o terceiro parâmetro da
TIMSTAMPDIFF
função seria a hora atual de login (NOW()
). O segundo parâmetro seria o último horário de login, que já está no banco de dados.fonte
meus dois centavos sobre lógica:
sintaxe é "data antiga" -: "nova data", portanto:
dá 30,
dá: -40
fonte
Se as datas de início e término estiverem em dias diferentes, use TIMEDIFF.
se datetime1> datetime2 então
dá: 24:01:00
e datetime1 <datetime2
dá: -24: 01: 00
fonte