我阅读了很多主题来获取不同时期发布的数据,但由于我的 mysql 表中的时间是 STRING 格式,我无法实现它。
SELECT s.user_id, count(*) AS wins, u.username, u.avatar,u.avatar_uploaded
FROM on_scores AS s
LEFT JOIN on_users AS u ON (u.userid = s.user_id)
WHERE s.is_high = '1' AND DATE(s.date_score) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY s.user_id
ORDER BY wins DESC
LIMIT 10
我尝试了STR_TO_DATE
方法,但仍然没有输出。
最佳答案
使用 from_unixtime
函数将时间转换为类似日期的格式。
更多信息here .
有关格式化结果日期的信息 - here .
示例:
select date_sub( from_unixtime( s.datescore ), INTERVAL 1 MONTH ) as monthfromdatevalue;
select datediff( from_unixtime( s.datescore, curdate()) as howlongago_fromtoday;
关于mysql - 在Mysql中获取最近一天、一周、一个月和一年的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453072/