繁体   English   中英

如何计算表格中的日期数

[英]how to count the number of dates in a table

我有一个小型的自定义博客类型网站,并且使用DB中的datetime字段来跟踪我的帖子,该字段在输入时保存有current_timestamp

我正在做一个分页设置,想弄清楚数据库中有多少不重复的日子。

例如,在下面的屏幕快照中,有19个条目,但仅在5不同的日期输入。

日期时间截图

我希望能够在数据库中找到唯一天数。 在以上拍摄5

这样,我可以按天数(例如7天)对我的帖子进行分页,但是无论一天有更多帖子还是一天没有任何帖子,我仍然可以显示所有那几天的所有帖子。

第1页的EX,显示发布的前7天:

1月1日+发布+发布+发布

1月3日+发布

1月4日+发布+发布

1月5日+发布

1月6日+发布+发布

1月7日+发布

1月8日+发布+发布

如何以这种方式获取数据或分页的最佳方法是什么? 谢谢

请尝试以下方法:

select count(*),date from tablename group by left(date,10)

以上查询将提供不重复天数。

这将为您提供每天的帖子数量:

select from_days(to_days(date)) day, count(*) from t
group by day

然后,您可以对记录数量(天)施加限制,以每7天分页一次:

select from_days(to_days(date)) day, count(*) from t
group by day
limit 7

现在,如果您想获取实际的帖子(我想这就是您想要的),则可以执行以下操作:

select date, file from t t1 join (
  select to_days(date) day from t
  group by day
  order by day desc
  limit 7
) t2
on to_days(t1.date) = t2.day

这将为您提供最近7天的所有帖子。 那是您要找的东西吗?

编辑:

我可能会误解或未很好地提出我的问题,但我希望所有不重复的天总数都不要算在内。 -ian

大声笑:这很容易:)

select count(distinct to_days(date)) from t

我猜你在找什么

SELECT count(*) from table group by DATE(date)

关键是要映射datetimedate经由DATE()函数

更新:对不起,我没有解释您的问题。 这将返回每天的帖子数。

要获取唯一日期的编号列表,您可以执行

SELECT DISTINCT DATE(datetime) from table

要获取不重复天数,您可以使用后端语言检查其计数,也可以进行子查询,例如:

select count(*) from (select distinct date(datetime) from table) as res

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM