Как использовать DATEDIFF?Сколько дней находится внутри двух дат
Вопрос
Как использовать 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')