Como usar o datediff? Quantos dias estão dentro de duas datas
Pergunta
Como usar o datediff? Como posso fazer isso funcionar? Ou devo usar o datediff de maneira completa?
SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';
Eu tento obter resposta, quantos dias estão dentro de duas datas.
Eu gostaria de obter um aswer como:
Duração = 7 dias;
Eu tenho esse tipo de banco de dados:
Iniciado | vai acabar
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26
Solução
Colocar will_end
primeiro, started
segundo:
SELECT DATEDIFF('2009-12-24', '2009-12-17')
---
7
Além disso, remova as citações únicas de seus nomes de campo:
SELECT DATEDIFF(will_end, started) AS Duration
FROM my_table
WHERE id = 110
, ou substitua -os pelos backsticks:
SELECT DATEDIFF(`will_end`, `started`) AS `Duration`
FROM `my_table`
WHERE `id` = 110
Outras dicas
Você está recebendo um NULL
resultado? Você tem os nomes de colunas em citações únicas em sua consulta, o que significa que você está passando as cordas 'Started '
e 'will_end'
para DATEDIFF
em vez dos valores da coluna. Tente remover as citações únicas e você começará a ver alguns resultados:
SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';
Observe que isso lhe dará um resultado negativo. Para obter um resultado positivo, reverta a ordem das colunas:
SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';
substitua o pedido
Datediff ('will_end', 'iniciado')
Eu acho que há 3 parâmetros a serem aprovados no datediff (datePart, startdate, enddate)
Portanto, seu código seria datediff (dd, 'iniciado', 'will_end')