我有一个名为posts的数据库表,其中有3个字段,如:
我使用以下mysql查询将数据插入上面提到的表中:
INSERT INTO `posts`
(`post_id`, `post_text`, `post_time`)
VALUES
(NULL, '324324234', UNIX_TIMESTAMP(NOW()))
这完全没问题。
现在我正在尝试根据上表中的周数检索数据。说,我想显示每周插入数据库的帖子数量(周一至周日)。我知道我可以通过mysql中的YearWeek函数来完成它,但它无法正常工作。
答案 0 :(得分:2)
您将日期/时间存储为unix时间戳,因此您需要将其转换为DATETIME才能使用YEARWEEK - 使用:
SELECT YEARWEEK(FROM_UNIXTIME(p.post_time)),
COUNT(*) AS numPosts
FROM POSTS p
GROUP BY YEARWEEK(FROM_UNIXTIME(p.post_time))
DATE_FORMAT可以自定义年/周值。
答案 1 :(得分:0)
@OMGPonies -
SELECT YEARWEEK(FROM_UNIXTIME(p.post_time)) AS yw,
COUNT(*) AS numPosts
FROM POSTS p
GROUP BY yw;
会跑得更快(可能 - 肯定不会慢)。