2012-05-29 5 views
3

Я хочу получить разницу между отметками времени, в формате timestamp, используя только MySQL и не используя язык программирования. Также не в секундах, часах, дате, месяцах или годах. в качестве примера.mysql timestamp разница в timestamp

timestamp1->2012-05-21 15:31:11 
timestamp2->2012-05-21 15:32:11 

Я хочу получить результат в формате временной шкалы.

Таким образом, результат должен быть TIMEDIFF() функция

result->0000-00-00 00:01:00 

ответ

6

Использовать в MySQL:

TIMEDIFF() возвращает expr1 - expr2 выражается как значение времени. expr1 и expr2 являются время или дата-и-выражения времени, но оба должны быть одного и того же типа.

Результат, возвращаемый TIMEDIFF(), ограничен допустимым диапазоном значений TIME. В качестве альтернативы вы можете использовать любую из функций TIMESTAMPDIFF() и UNIX_TIMESTAMP(), обе из которых возвращают целые числа.

mysql> SELECT TIMEDIFF('2000:01:01 00:00:00', 
    ->     '2000:01:01 00:00:00.000001'); 
     -> '-00:00:00.000001' 
mysql> SELECT TIMEDIFF('2008-12-31 23:59:59.000001', 
    ->     '2008-12-30 01:01:01.000002'); 
     -> '46:58:57.999999'
+0

Большое вам спасибо за ваш ответ. Но в этом вашем методе результат не в формате timestamp. Я хочу ответить как временную метку –

+0

@ KasunMalith: Как это можно сделать? Например, как было бы возвращено 792 часа (33 дня)? Это '0000-01-03' или' 0000-01-02'? Или что-то еще (февраль, например, содержит 28 или 29 дней в зависимости от года). Как вернуть отрицательную разницу? – eggyal