SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.05.2018 20:26:04

Appologies
Участник
Зарегистрирован: 11.05.2018
Сообщений: 3

Добавить разницу между двумя датами

Всем привет, у меня есть таблица в которой хранятся данные в формате datetime
id | date_start | date_stop | date_total
Мне необходимо через UPDATE запрос отнять date_stop от date_start и добавить это значение в date_total

Неактивен

 

#2 11.05.2018 20:31:36

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Добавить разницу между двумя датами


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 11.05.2018 20:39:31

Appologies
Участник
Зарегистрирован: 11.05.2018
Сообщений: 3

Re: Добавить разницу между двумя датами

Да смотрел, уже сутки парюсь над этим, не могу понять. Пытался вот так:

$delete_row = $mysqli->query("UPDATE combats_duty_logs SET duty_time_stop=NOW() , active=0 , duty_time_total=DATEDIFF(duty_time_start, NOW()) WHERE id=".$idToDelete);

Неактивен

 

#4 11.05.2018 20:41:18

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Добавить разницу между двумя датами

Приведите пример Ваших данных (пара тройка стро) и какой результат Вы хотите получить в качестве запроса?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 11.05.2018 20:45:22

Appologies
Участник
Зарегистрирован: 11.05.2018
Сообщений: 3

Re: Добавить разницу между двумя датами

id | duty_time_start | duty_time_stop | duty_time_total
1 | 2018-05-11 20:01:19| 2018-05-11 20:02:09 | 0000-00-00 00:00:00
2 | 2018-05-11 20:01:19| 2018-05-11 20:02:09 | 0000-00-00 00:00:00

Мне необходимо сделать duty_time_stop (либо NOW()) - duty_time_start и записать это значние в  duty_time_total

Неактивен

 

#6 13.05.2018 11:54:48

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Добавить разницу между двумя датами

SELECT TIMESTAMPDIFF(SECOND, `duty_time_stop`, `duty_time_start`) FROM `combats_duty_logs`;

Этот запрос возвращает нужное значение?
Если да, то можно сделать
UPDATE`combats_duty_logs` SET `duty_time_total` = TIMESTAMPDIFF(SECOND, `duty_time_stop`, `duty_time_start`);

только тип данных duty_time_total логичнее сделать int, а не date/datetime


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson