【发布时间】:2012-06-03 13:42:39
【问题描述】:
我想以时间戳格式获取时间戳之间的差异,仅使用 MySQL 而不是使用编程语言。也不是秒、小时、日期、月或年。 举个例子。
timestamp1->2012-05-21 15:31:11
timestamp2->2012-05-21 15:32:11
我想得到时间戳格式的结果。
所以结果应该是
result->0000-00-00 00:01:00
【问题讨论】:
我想以时间戳格式获取时间戳之间的差异,仅使用 MySQL 而不是使用编程语言。也不是秒、小时、日期、月或年。 举个例子。
timestamp1->2012-05-21 15:31:11
timestamp2->2012-05-21 15:32:11
我想得到时间戳格式的结果。
所以结果应该是
result->0000-00-00 00:01:00
【问题讨论】:
使用MySQL的TIMEDIFF()函数:
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'
【讨论】:
0000-01-03 还是0000-01-02?或者其他的东西(例如,2 月包含 28 或 29 天,具体取决于年份)。如何返回负差?