我的表中有很多类似于2011-10-05 08:09:00.000的时间戳,下面的查询引用了reg_date、mid_date和pre_date。而不是显示时间戳,我需要它显示23 mins ago而不是2011-10-05 08:09:00.000。我试过一些函数,比如timediff()format()。我想在查询中完成这一切,这样我就不必查询和处理结果了。
也许我不太了解玛瑙,但我相信有一种方法可以完成这件事。我对MySQL查询语句很陌生。我看到了很多潜力和时间节省。我只是需要一点帮助来完成这件事。

select reg_price as regPrice, _id as ID, lat, lng, reg_date as regDate,
                mid_date as midDate, pre_date as preDate,
                format((acos(sin(radians(39.9891)) * sin(radians(lat)) + cos(radians(39.9891)) *
                cos(radians(lat)) * cos(radians(-82.8116) - radians(lng))) * 6378),1)
                as distance from stationDetails where (acos(sin(radians(39.9891))
                * sin(radians(lat)) + cos(radians(39.9891)) * cos(radians(lat)) *
                cos(radians(-82.8116) - radians(lng))) * 6378) <= 3 order by reg_price asc, reg_price asc

最佳答案

使用TIMEDIFF()TIME_FORMAT()您应该能够像X分钟前那样显示结果。根据需要,根据您希望如何处理不同的时间刻度(小时、天等),可以很容易地修改其他时间值:

select
    TIME_FORMAT(
        TIMEDIFF(now(), dt)
        ,'%i minute(s) ago'
    )
from Data;

演示:http://sqlize.com/r1mlXcM62V

关于mysql - 自更新MySQL查询以来的时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7678214/

10-12 01:30
查看更多