有没有一种方法可以在MySQL中进行查询,这会在几秒钟内给出两个时间戳之间的差异,还是我需要在PHP中执行该操作?如果是这样,我会怎么做呢?MySQL:如何在几秒钟内获得两个时间戳之间的差异
回答
您可以使用TIMEDIFF()
和TIME_TO_SEC()
功能如下:
SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
您也可以使用UNIX_TIMESTAMP()
功能@Amber suggested在其他答案:如果您使用的是TIMESTAMP
SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') -
UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
数据类型,我猜UNIX_TIMESTAMP()
解决方案会稍微快一点,因为TIMESTAMP
值已经存储为一个整数,表示数字自纪元以来的秒数(Source)。引述docs:
当
UNIX_TIMESTAMP()
上一个TIMESTAMP
柱使用的,功能直接返回内部的时间戳值,没有隐含的“串到Unix时间戳”的转换。请注意,TIMEDIFF()
return data type ofTIME
。TIME
值的范围可以从 '-838:59:59' 到 '838:59:59'(大致34.96天)
UNIX_TIMESTAMP(ts1) - UNIX_TIMESTAMP(ts2)
如果你想要一个无符号差异,在表达式周围加上一个ABS()
。
或者,您可以使用TIMEDIFF(ts1, ts2)
,然后使用TIME_TO_SEC()
将时间结果转换为秒。
约 “TIMESTAMPDIFF”:
SELECT TIMESTAMPDIFF(SECOND,'2009-05-18','2009-07-29') from `post_statistics`
http://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php
如果您的日期列是YYYY-MM-DD以外的其他形式,请尝试执行此操作:TIMESTAMPDIFF函数中的str_to_date(date_column,'%m /%d /%Y')为需要更正格式的列。 – greaterKing 2017-01-24 00:08:25
请注意,TIMEDIFF()
解决方案只适用于datetimes
是小于35天分开! TIMEDIFF()
返回一个数据类型TIME
,以及用于TIME的最大值为838:59:59小时(= 34,96天)
- 1. 如何在几秒钟内获得时间差异?
- 2. 在两个日期之间的Android差异在几秒钟内
- 3. 在几秒钟内发现时间戳的差异
- 4. 在几秒钟内找到两个日期时间之间的差异
- 5. 如何获得两个时间戳之间的差异
- 6. 如何在几秒钟内获得当前UTC时间戳
- 7. 如何在几秒钟内获得utc时间和本地时间之间的差异?
- 8. 在两秒钟内获得两个乔达日期之间的差异
- 9. 在几秒钟内获得时差?
- 10. C++ chrono秒钟内2个时钟之间的差异
- 11. 如何获得mysql时间戳和php当前时间之间的差异?
- 12. 如何在几分钟内找到两个UNIX时间戳之间的差异PHP
- 13. 如何获得在两个时间戳之间毫秒这是不同的时区的JavaScript中的差异
- 14. 时间戳。两次之间的差异
- 15. 计算差异之间的两个时间戳并获得Unix时间戳差异
- 16. 如何获得天数中两个时间戳之间的差异?
- 17. 如何在几秒钟内获得午夜以来的时间
- 18. PHP在几分钟内获得时间差异
- 19. 如何计算php中的两个时间戳记之间的分钟差异
- 20. 如何获得连续时间戳之间差异的BigQuery
- 21. 我如何在两个时间戳中获得差异
- 22. 两个时间戳之间的MySQL差异
- 23. MySql秒之间的两个时间戳之间的区别?
- 24. PHP:在几秒钟的时间差
- 25. VBA锻炼两个时间戳之间有多少天,几小时,几分钟或几秒钟?
- 26. 批处理脚本在几秒钟内计算时间差异
- 27. 2个时间戳之间的差异
- 28. 获得两个表之间的差异?
- 29. 选择两行中两个unix时间戳之间的差异
- 30. 时间戳在分钟之间的差异
也可以使用[TIMESTAMPDIFF](http://dev.mysql.com/ doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff),它在一个函数中完成 - 只需将'unit'参数设置为'SECOND'。 – Mike 2010-08-20 07:33:51
+1表现说明。我没有使用UNIX_TIMESTAMP(),因为我认为这需要更多时间。 – elcool 2011-04-22 18:14:26