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

Foi útil?

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')

http://msdn.microsoft.com/en-us/library/ms189794.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top