Разница между двумя временами в MySQL от переполнения стека

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

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";

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

0

Решение

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

1

Другие решения

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

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector