假设我们在SQL Server表中有以下记录。

Date
19/5/2009 12:00:00 pm
19/5/2009 12:15:22 pm
20/5/2009 11:38:00 am


得到这样的东西的SQL语法是什么?

日期计数
2009年5月19日2
2009年5月20日1

最佳答案

您需要对日期字段的“仅日期”版本进行任何分组,例如这样。

SELECT
    CONVERT(VARCHAR(10), YourDateColumn, 101),
    COUNT(*)
FROM
    YourTable
GROUP BY
    CONVERT(VARCHAR(10), YourDateColumn, 101)


我通常这样做,因为它避免了转换为varchar。

SELECT
    DATEPART(yy, YourDateColumn),
    DATEPART(mm, YourDateColumn),
    DATEPART(dd, YourDateColumn),
    COUNT(*)
FROM
    YourTable
GROUP BY
    DATEPART(yy, YourDateColumn),
    DATEPART(mm, YourDateColumn),
    DATEPART(dd, YourDateColumn)


编辑:获取日期时间中日期部分的另一种方法

DATEADD(d, 0, DATEDIFF(d, 0, YourDateColumn))

07-24 21:36