使用两个时间戳列之间的差异过滤 MySQL 中的 table

Filtering table in MySQL with difference between two timestamp columns

我在 MySQL 中有一个 table,其中包括日期时间列 open_timeclose_time

如何才能 select 只有 close_time 至少比 open_time 长一分钟的行?

WHERE TIMESTAMPDIFF(SECOND,close_time,open_time) > 60

更多信息: http://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php

你可以使用 TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2) 之类的东西

select * from MyTab T where TIMESTAMPDIFF(MINUTE,open_date,close_date) > 1

来自文档

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Returns datetime_expr2 − datetime_expr1, where datetime_expr1 and datetime_expr2 are date or datetime expressions. One expression may be a date and the other a datetime; a date value is treated as a datetime having the time part '00:00:00' where necessary. The unit for the result (an integer) is given by the unit argument. The legal values for unit are the same as those listed in the description of the TIMESTAMPADD() function.

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01'); -> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01'); -> -1
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55'); -> 128885

Note The order of the date or datetime arguments for this function is the opposite of that used with the TIMESTAMP() function when invoked with 2 arguments.