SQL Server查询-计数不同日期时间字段
假设SQL Server表中有以下记录SQL Server查询-计数不同日期时间字段,sql,sql-server,distinct,Sql,Sql Server,Distinct,假设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 GROU
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))
这取决于您的数据库引擎。对于SQL Server 2008(及以后的版本),可以使用
日期
类型来执行此操作
select
convert(date, date_column_name) as Date,
count(1) as Count
from table_name
group by convert(date, date_column_name)
这取决于你的工作。Mysql示例:
SELECT DATE_FORMAT(dateColumn, '%e/%c/%Y') as `date`, COUNT(*)
FROM YourTable
GROUP BY `date`
您使用的是什么RDBMS?使用Sybase,您的查询如下所示:
select date(datetimeColumn) as myDate, count(*) as myTotal
from thisTable
Group by myDate
Order by myTotal, myDate
谷歌也发现了这个 选择CAST(FLOOR(CAST(Expr1作为FLOAT))作为DATEtime)作为Expr1 将(*)计数为Expr2 从我的桌子上 分组 转换(地板(转换(Expr1为浮动))为日期时间) 犯人
谢谢大家您使用的是哪种数据库服务器?哪种RDBMS?T-SQL、P/L SQL等的答案不同…抱歉,在标题中修复了它。MS-SQL。感谢这一年唯一的团队。他想要完整的date当它仍然转换为varchar时,您可以将它转换回datetime(给您该日期的12:00AM),或者您可以将datepart的结果转换为datetime。