5

我正在使用这个查询:SELECT NOW() - date AS elapsed FROM ...

日期列是 TIMESTAMP。当经过的时间约为 4 小时 20 分钟时,它返回 41632。这不是时间戳。它是什么?

或者有没有更好的方法来获取经过时间并使用 PHP 生成,如下所示:“2 分钟前”“3 小时前”“昨天 22:32”

非常感谢!

4

2 回答 2

17

使用TimeStampDiff函数

  select TIMESTAMPDIFF(MINUTE, NOW(), timestamp_column) FROM my_table 
于 2011-09-13T17:36:54.450 回答
0

这将显示如下值:

1 month
6 months
4 years
1 year
12 years
...
IF (
   TIMESTAMPDIFF(YEAR, timestamp_column, NOW()) > 0,
   CONCAT(TIMESTAMPDIFF(YEAR, timestamp_column, NOW()), " year", IF(TIMESTAMPDIFF(YEAR, timestamp_column, NOW())=1,"","s")),
   CONCAT(TIMESTAMPDIFF(MONTH, timestamp_column, NOW()), " month", IF(TIMESTAMPDIFF(MONTH, timestamp_column, NOW())=1,"","s"))
)
于 2020-11-29T00:13:51.383 回答