mysql - 将时间戳转换为 X 天 X 小时 X 分钟前

标签 mysql timestamp

我在 MySQL Server 5.1 中创建了一个存储过程。

如何将时间戳转换为表示该时间戳与现在之间的天数、小时数和分钟数差异的字符串?

例如,如果时间戳是 5 小时 3 分钟前,我将得到“5 小时 3 分钟前”。

最佳答案

select date_format(timediff(current_timestamp,last_timestamp), 
'%k hours, %i minutes, %s seconds ago');

如果你想要更多的奢侈品,你可以这样做:

select concat
  (
  if(date_format(timediff(ts1,ts2)'%k')='0'
     ,'',date_format(timediff(ts1,ts2)'%k hours'),
  if(date_format(timediff(ts1,ts2)'%i')='0'
     ,'',date_format(timediff(ts1,ts2)'%k minutes'),
  if(date_format(timediff(ts1,ts2)'%s')='0'
     ,'',date_format(timediff(ts1,ts2)'%k seconds')
  ) 

在这里和那里加上一些额外的空格。
如果其中一个时间戳为 null,结果自然也会为 null,您必须确保它不是,或者使用 ifnull(`timestamp`,now()) 来解决这个问题。

参见:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff

关于mysql - 将时间戳转换为 X 天 X 小时 X 分钟前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7164522/

相关文章:

mysql - 按不同列排序

mysql - Lambda Node.js Mysql RDS 超时

java - 从 date 到 long 的转换在 java 和 postgresql 中是不一样的

linux - 将 unix 时间戳转换为 hh :mm:ss:SSS (where SSS is milliseconds) in AWK

mysql - 编写一个将时间戳转换为日期并添加小时数的查询

php - 当我使用 PHP 时,一些 HTML 标签消失了

mysql - MySQL 根据相邻行的值删除行

MySQL 查询正则表达式

mysql - 更新记录时如何防止时间戳字段更新其值

PHP:将负时间戳转换为日期