我正在尝试使用 SQL 来计算数据库中每个日期的行数

I am trying to use SQL to count the number of rows for each date in my database

我的数据库是这样的:

Date                        Col2         Col3       Col4
2020-11-02 06:45:16.000     data         data       data
2020-11-02 07:23:23.111     data         data       data
2020-12-14 08:55:44.213     data         data       data

我只需要这样的日期计数:

Date          Count
2020-11-02     2
2020-12-14     1

我试过了...

select distinct(Date),
       count(*)

from database

...但是日期格式不是我的朋友。任何想法将不胜感激。

在大多数数据库中,您可以通过转换为日期并使用 group by:

来删除日期部分
select cast(Date as date), count(*)    
from database
group by cast(Date as date)
order by cast(Date as date);

不过,各种数据库也有其他的转换方法,例如:

  • date(date) 在 MySQL.
  • trunc(date) 在 Oracle 中。
  • date_trunc('day', date) 在 Postgres 中。

您确实需要使用 count() 函数,这意味着您必须 'group by'。根据您使用的 RDBMS,您还需要格式化日期以取消时间戳。

在 Mysql 你可以试试:

select date_format(date,'%Y-%m-%d'), count(1)
from your_table
group by date_format(date,'%Y-%m-%d')