当我想要按日期分组时,如何为日期时间执行“分组依据”?

时间:2009-07-06 16:44:21

标签: mysql

这是一个非常尴尬的标题:)

我需要编写一份报告,按日期生成拒绝列表。日期存储为日期时间字段,并按日期时间返回拒绝次数。

这是我的SQL:

select ps.date_scheduled, count(*) from payments_schedule ps
left join invoices i on i.invoice_id=ps.invoice_id
left join orders o on o.order_id=i.order_id
where ps.date_scheduled>'2009-06-01 00:00:00'
group by ps.date_scheduled

2009-06-25 14:13:04 1 2009-06-25 14:13:07 1 ..等...

不酷。我想要的是这个: 2009-06-25 25 2009-06-26 31 等...

我该怎么做?谢谢:))

3 个答案:

答案 0 :(得分:7)

SELECT  CAST(ps.date_scheduled AS DATE), COUNT(*)
FROM    payments_schedule ps
LEFT JOIN
        invoices i
ON      i.invoice_id = ps.invoice_id
LEFT JOIN
        orders o
ON      o.order_id = i.order_id
WHERE   ps.date_scheduled > '2009-06-01 00:00:00'
GROUP BY
        CAST(ps.date_scheduled AS DATE)

答案 1 :(得分:4)

GROUP BY DATE(ps.date_scheduled)

答案 2 :(得分:0)

将您的查询更改为select DATEADD(day, 0, DATEDIFF(day, 0, ps.date_scheduled))。这将仅保留日期时间的日期部分。您还需要按相同的表达式进行分组。

编辑:这是解决SQL Server问题的方法。