[英]SQL Server Server query - Count distinct DateTime field
假設我們在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語法是什么?
日期 計數
19/5/2009 2
20/5/2009 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(以及將來的版本),您可以使用date
類型執行此操作。
select
convert(date, date_column_name) as Date,
count(1) as Count
from table_name
group by convert(date, date_column_name)
取決於您的DBMS 。 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
谷歌搜索后發現這個...
SELECT CAST(FLOOR(CAST(Expr1 AS FLOAT))AS DATEtime)AS Expr1,
COUNT(*)AS Expr2
來自MY_TABLE
通過...分組
CAST(FLOOR(CAST(Expr1 AS FLOAT))AS DATEtime)
缺點?
謝謝你們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.