按日期计算查询分组忽略时间

Posted

技术标签:

【中文标题】按日期计算查询分组忽略时间【英文标题】:Count query grouping by date ignoring time 【发布时间】:2015-09-10 17:09:12 【问题描述】:

我有一个 DATE 变量,它应该被分组忽略此查询中的时间:

SELECT COUNT(*), update_date
FROM table1
HAVING count(update_date)>1
GROUP BY update_date
ORDER BY update_date desc

结果是正确的,但我需要按 DAY 而不是按秒对它们进行分组,因为该字段的日期格式是 DD/MM/YYYY HH:MM:SS。我想只比较 DD/MM/YYYY,忽略更新时间,按天。

【问题讨论】:

【参考方案1】:

使用trunc()将时间部分设置为00:00:00

SELECT COUNT(*), trunc(update_date) as update_date
FROM table1
GROUP BY trunc(update_date)
HAVING count(trunc(update_date))>1
ORDER BY trunc(update_date) desc

【讨论】:

应该 group byhaving 之前吗? @vkp:其实没关系:docs.oracle.com/cd/E11882_01/server.112/e41084/…,但将“拥有”放在“看起来”更好的群体之后 @a_horse_with_no_name..知道了..我以前不知道..谢谢

以上是关于按日期计算查询分组忽略时间的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询根据按月分组的激活日期计算累积用户数

SQL加入多个子查询 - 按日期计算打开/关闭

选择日期范围,根据关闭条件计算范围内的多条记录,按班次分组

如何计算 SQL Server 中按日期和用户分组的条目之间的平均时间?

如何计算按多个日期分组的行(在 Symfony 中)?

按连续日期分组,忽略 SQL 中的周末