Рассчитать разницу между двумя датами (формат строки) в MySQL

Мой клиент хранит время посещения страницы в MySQL как varchar. Он берет объект класса даты new date() от JS, который не в формате

Пт 25 ноября 2016 12:09:34 GMT + 0530 (стандартное время Индии)

Я хочу рассчитать разницу во времени для 2 переменных, как показано выше. Он используется для целей аналитики, время, проведенное на странице, как.

Я уже попробовал это:

SELECT TIMESTAMPDIFF(SECOND, 'Fri Nov 25 2016 12:09:34 GMT+0530 (India Standard Time)',
'Fri Nov 25 2016 12:20:34 GMT+0530 (India Standard Time)')

Как мне это сделать?

0

Решение

Вы действительно должны использовать MySQL Дата тип. (Edit: только что увидел в комментарии, почему вы используете varchar, так что давайте пропустим это;))

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

SELECT TIMESTAMPDIFF(
SECOND,
STR_TO_DATE('Fri Nov 25 2016 12:09:34 GMT+0530 (India Standard Time)', '%a %b %d %Y %T'),
STR_TO_DATE('Fri Nov 25 2016 12:20:34 GMT+0530 (India Standard Time)', '%a %b %d %Y %T')
)
2

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

Попробуй это :

SELECT TIMEDIFF('Nov 25 2016 12:09:34','Fri Nov 25 2016 12:20:34') as diff;
0

$dat1 = "Fri Nov 26 2016 12:09:34 GMT+0530";
$dat2 = "Fri Nov 25 2016 12:20:34 GMT+0530";

$diff = abs(strtotime($dat2) - strtotime($dat1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector