簡體   English   中英

SQL Server Server查詢 - 計算不同的DateTime字段

[英]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)

缺點?

  1. 高速執行
  2. 返回的結果是原始語言環境。 希臘語19/5/2009的前

謝謝你們

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM