从 MySQL 选择经过的时间

发布于 2024-12-04 12:39:58 字数 206 浏览 1 评论 0原文

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

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

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

非常感谢!

I'm using this query:
SELECT NOW() - date AS elapsed FROM ...

Date column is TIMESTAMP.
It returns 41632 when elapsed time is about 4 hours and 20 minutes.
It's not timestamp.
What is it?

Or is there any better way to get elapsed time and generate with PHP like this:
"2 minutes ago"
"3 hours ago"
"yesterday 22:32"

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蛮可爱 2024-12-11 12:39:58

使用 TimeStampDiff 函数

  select TIMESTAMPDIFF(MINUTE, NOW(), timestamp_column) FROM my_table 

Use the TimeStampDiff function

  select TIMESTAMPDIFF(MINUTE, NOW(), timestamp_column) FROM my_table 
戒ㄋ 2024-12-11 12:39:58

这将显示如下值:

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"))
)

This will show values like:

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"))
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文