У меня есть таблица базы данных в этой структуре.
ID - INT
addDate - DateTime
sunrise - Time
sunset - Time
Сейчас я пытаюсь восстановить разницу в минутах между
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";
Почему ценности становятся все меньше и меньше? Мой запрос правильный?
Вы заказываете по addDate
в порядке возрастания. Вы принимаете разницу между now()
а также addDate
, Восходящий порядок означает addDate
продолжает расти, поэтому разница между addDate
а также now()
становится все меньше.
Я не знаю точно, какова ваша цель — но с каждой записью, которую вы приближаете к настоящему () — вот почему значения становятся все меньше и меньше.
Ваш запрос не использует поля восхода и захода солнца:
SELECT addDate, TIMESTAMPDIFF(MINUTE, DATE_ADD(addDate,sunset), DATE_ADD(addDate, sunrise))