Как использовать DATEDIFF?Сколько дней находится внутри двух дат

StackOverflow https://stackoverflow.com/questions/1946490

Вопрос

Как использовать DATEDIFF?Как я могу заставить это сработать?или я должен использовать DATEDIFF совершенно по-другому?

SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';

Я пытаюсь получить ответ, сколько дней находится внутри двух дат.

Я хотел бы получить ответ, подобный:
Продолжительность = 7 дней;

У меня есть такая база данных:

Начато | завершится
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26

Это было полезно?

Решение

Положить will_end Первый, started второй:

SELECT  DATEDIFF('2009-12-24', '2009-12-17') 

---
  7

Кроме того, удалите одинарные кавычки из имен ваших полей:

SELECT  DATEDIFF(will_end, started) AS Duration
FROM    my_table
WHERE   id = 110

, или замените их обратными метками:

SELECT  DATEDIFF(`will_end`, `started`) AS `Duration`
FROM    `my_table`
WHERE   `id` = 110

Другие советы

Ты получаешь NULL результат?В вашем запросе имена столбцов заключены в одинарные кавычки, что означает, что вы передаете строки 'Started ' и 'will_end' Для DATEDIFF вместо значений столбцов.Попробуйте убрать одинарные кавычки, и вы начнете видеть некоторые результаты:

SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';

Обратите внимание, что это даст вам отрицательный результат.Чтобы получить положительный результат, измените порядок следования столбцов в обратном порядке:

SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';

замените заказ

DATEDIFF('завершится','Начато')

Я думаю, что есть 3 параметра, которые нужно передать в DATEDIFF ( datepart, startdate, enddate)

таким образом, ваш код будет DATEDIFF ( dd , 'Started ','will_end')

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top