2015-11-13 5 views
0

У меня есть структура таблицы базы данных в этой структуре.Разница между двумя временами в MySQL по PHP

ID  - INT 
addDate - DateTime 
sunrise - Time 
sunset - Time 

В Datasets выглядеть

Теперь я пытаюсь получить разницу в минутах между

SELECT addDate, TIMESTAMPDIFF(MINUTE, sunrise, sunset) AS duration FROM SunData WHERE date(addDate) BETWEEN curdate() - interval 7 day and curdate() ORDER BY addDate ASC 

Результаты я получаю NULL в каждой строке для продолжительности.

код для отображения этих значений

$date = date("Y-m-d H:i:s", strtotime(str_replace('-','/',$row->addDate))); 
$duration = $row->duration/60; 

echo "Dauer: " . $duration . "Stunden\n"; 

Почему значения становится все меньше и меньше? Правильно ли мой запрос?

+1

Что именно вы пытаетесь сделать? Ваш запрос получает разницу между сохраненным временем и 'NOW()', упорядоченным по времени хранения, и все эти времена в прошлом. Итак, да, эти значения будут уменьшаться. –

+2

Вы хотите найти разницу между восходом и закатом солнца? И.Е. Количество дневного света в день? – JRD

+0

Немного изменил ... см. Edit ... –

ответ

1

Вы заказываете addDate в порядке возрастания. Вы принимаете разницу между now() и addDate. По возрастанию означает, что addDate продолжает расти, поэтому разница между addDate и now() продолжает уменьшаться.

0

Я не знаю точно, какова ваша цель, но с каждой записью, с которой вы приближаетесь ближе() - вот почему значения становятся все меньше и меньше.

Ваш запрос не использовать восхода и захода солнца поля:

SELECT addDate, TIMESTAMPDIFF(MINUTE, DATE_ADD(addDate,sunset), DATE_ADD(addDate, sunrise)) 
+0

Это не работает.получение синтаксической ошибки рядом на закате) –

+0

как я прочитал в mysql, порядок функций - это нижняя временная метка, поэтому порядок - восход солнца, а затем закат –

+0

SELECT addDate, TIMESTAMPDIFF (MINUTE, DATE_ADD (addDate, восход солнца), DATE_ADD (addDate, sunset)) AS duration FROM SunData WHERE date (addDate) BETWEEN curdate() - интервал 7 дней и curdate() ORDER BY addDate ASC => получается синтаксическая ошибка –

Смежные вопросы