2015-12-06 8 views
1

У меня есть таблица в моей базе данных, и у меня есть две столбца даты (varchar) в моей таблице date1 и date2. Я хочу найти разницу в часах между датой 1 и датой2. База данных создается с использованием mariadb.Невозможно найти часы между двумя датами MySQL

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

timediff('date1','date2') 

Но получение нуль.

+0

Написать ваш SQL запрос пожалуйста –

ответ

1

Проблема заключается в том, что вы передаете имя столбца как String, чтобы он не смог его проанализировать. Удалите кавычки из столбца, и он будет работать как прелесть.

SELECT timediff(date1, date2) from TABLE 

EDIT: - Использование STR_TO_DATE() метод для преобразования строки в тип даты ... Так окончательный запрос будет

SELECT timediff(STR_TO_DATE(date1, '%m-%d-%Y %H:%i:%s'),STR_TO_DATE(date2, '%m-%d-%Y %H:%i:%s')) from TABLE 
+0

также попытался это получает нулевой –

+1

я просто казнен в моей системе ... она работает нормально ... Можете ли вы сказать тип данных вашего date1 и date2 колонки ... Я думаю, он должен быть DATETIME – Naruto

+0

Нет его varchar и не может быть изменен –

1

Вы можете использовать STR_TO_DATE для преобразования VARCHAR на сегодняшний день, так ваш запрос должен быть:

timediff(STR_TO_DATE(date1, '%m/%/d/%Y %h:%i:%s %p'), (STR_TO_DATE(date2, '%m/%/d/%Y %h:%i:%s %p')) 
1
TIMESTAMPDIFF(HOUR, start_date, end_date) 

Пример:

mysql> SELECT NOW(), TIMESTAMPDIFF(HOUR, '2015-12-09 08:00:00', NOW()); 
+---------------------+---------------------------------------------------+ 
| NOW()    | TIMESTAMPDIFF(HOUR, '2015-12-09 08:00:00', NOW()) | 
+---------------------+---------------------------------------------------+ 
| 2015-12-09 14:12:51 |             6 | 
+---------------------+---------------------------------------------------+ 
Смежные вопросы