SQL:执行查询的日期范围,但日期明智
我有一个查询,如下SQL:执行查询的日期范围,但日期明智
select count(*) from schema.tablename where columnname
Between To_Timestamp ('2017-07-01 00:00:00.000000','YYYY-MM-DDHH24:MI:SS.FF') And
To_Timestamp ('2017-07-01 23:59:59.000000','YYYY-MM-DDHH24:MI:SS.FF') and column_2='D' order by columnname desc;
如果我必须执行相同的查询,收集从7月1日的统计数据,以7月17日作为一天明智的话,我必须执行17次查询。
有没有什么办法可以迭代日期,这样我就可以给出开始日期和结束日期,并且查询将在一天内读取行数。例如如下
Date Number of rows
7/1/2017 3865
7/2/2017 2981
7/3/2017 21391
谢谢。
我想你想:
select date(column_created), count(*)
from schema.tablename
group by date(column_created)
order by date(column_created) desc;
甲骨文的错误都来自Oracle,MySQL的没有。 Oracle中的语法是:
select trunc(column_created), count(*)
from schema.tablename
group by trunc(column_created)
order by trunc(column_created) desc;
但它不会给所有日期的统计信息?如果我想限制我在特定日期之间的搜索? –
我可能会让您感到困惑,因为我没有为列名选择较少的命名约定,但我现在已经更正了。请再次查看我的帖子。 –
@十枚硬币。 。 。您仍然可以添加“where”来获取所需的日期范围。 –
Oracle错误来自Oracle,而不是MySQL。 –