sql - 如何在 MySQL 中最有效地获取两个日期时间值之间的 unix 时间戳间隔?

标签 sql mysql intervals

这种方式确实有效,但它调用了 UNIX_TIMESTAMP 2 次:

mysql> select UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP('2009-09-23 22:07:42');
+---------------------------------------------------------------+
| UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP('2009-09-23 22:07:42') |
+---------------------------------------------------------------+
|                                                           639 |
+---------------------------------------------------------------+
1 row in set (0.05 sec)

最佳答案

不应该

TIMESTAMPDIFF(SECOND, now(), '2009-09-23 22:07:42')

只用一个函数调用就可以做到同样的事情(不算 now())? (目前无法访问 MySQL,MSSQL 的工作方式略有不同,因此无法测试)。

基本上 UNIX 时间戳是从一个奇怪的纪元开始的秒数,所以差异只是秒数的差异。此外,此功能仅在 MySQL 5 及更高版本中可用。

但总的来说,遇到问题时要担心性能问题,在此之前编写可读代码。

关于sql - 如何在 MySQL 中最有效地获取两个日期时间值之间的 unix 时间戳间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466285/

相关文章:

php - 如何使用 SQL 和 PHP 从数据库 (phpMyAdmin) 的字段中获取/请求所有值?

Javascript 和 Ajax - 在间隔中包含回调变量

sql - 如何在Hive上处理SQL中的数据偏斜?

php - 检索结果时如何解决不明确的列名?

mysql - 使用 AJAX 每秒更新同一个 MySql 表

mysql - 根据时间戳过滤大量行

R 并润滑 : do the intervals in x fit into any of the intervals in y?

在一系列重叠间隔中找到最大和的算法

php - SQL查询从另一个表获取数据

c# - 从外部文件读取连接字符串