MySQL: how to get the difference between two timestamps in seconds(MySQL:如何以秒为单位获得两个时间戳之间的差异)
问题描述
有没有一种方法可以在 MySQL 中进行查询,以秒为单位提供两个时间戳之间的差异,或者我需要在 PHP 中执行此操作吗?如果是这样,我将如何去做?
Is there a way I can make a query in MySQL that will give me the difference between two timestamps in seconds, or would I need to do that in PHP? And if so, how would I go about doing that?
推荐答案
您可以使用 TIMEDIFF()
和 TIME_TO_SEC()
函数如下:
You could use the TIMEDIFF()
and the TIME_TO_SEC()
functions as follows:
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 在另一个答案中建议:
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)
如果您使用 TIMESTAMP
数据类型,我猜 UNIX_TIMESTAMP()
解决方案会稍微快一点,因为 TIMESTAMP
值是已经存储为一个整数,表示自纪元以来的秒数(来源).引用 docs:
If you are using the TIMESTAMP
data type, I guess that the UNIX_TIMESTAMP()
solution would be slightly faster, since TIMESTAMP
values are already stored as an integer representing the number of seconds since the epoch (Source). Quoting the docs:
当 UNIX_TIMESTAMP()
用于 TIMESTAMP
列时,函数直接返回内部时间戳值,没有隐式的字符串到 Unix 时间戳"转换.
When
UNIX_TIMESTAMP()
is used on aTIMESTAMP
column, the function returns the internal timestamp value directly, with no implicit "string-to-Unix-timestamp" conversion.
请记住 TIMEDIFF()
返回TIME
的数据类型.TIME
值的范围可以从 '-838:59:59' 到 '838:59:59'(大约 34.96 天)
Keep in mind that TIMEDIFF()
return data type of TIME
. TIME
values may range from '-838:59:59' to '838:59:59' (roughly 34.96 days)
这篇关于MySQL:如何以秒为单位获得两个时间戳之间的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:MySQL:如何以秒为单位获得两个时间戳之间的差异


基础教程推荐
- SQL Server 2016更改对象所有者 2022-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01