MySQL中的时间戳差异问题

3
我希望用只有MySQL而不使用编程语言的方式获取时间戳格式之间的差异。也不要使用秒、小时、日期、月份或年份来表示。以下是一个示例:

例如。

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

我希望以时间戳格式获取结果。
因此,结果应为:
result->0000-00-00 00:01:00
1个回答

6
使用MySQL的TIMEDIFF()函数:

TIMEDIFF() 返回一个时间值,表示 expr1 减去 expr2 的结果。其中,expr1expr2 都是时间或日期时间表达式,但必须是相同类型的。

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'

非常感谢您的回答。但是在您的方法中,结果不是时间戳格式。我希望得到一个时间戳作为答案。 - Kasun Malith
@KasunMalith:怎么做呢?例如,792小时(33天)应该返回什么?是0000-01-03还是0000-01-02?或者其他的(例如,二月份根据年份有28或29天)。负差异应该如何返回? - eggyal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接