Sql-Server

選擇短日期格式的時間戳格式欄位計數以給出行數

  • January 12, 2021

我有一個名為 DTUpdated 的欄位,它是一個時間戳欄位。

我正在嘗試選擇 xx 舊行中的日期計數。即0-3個月、3-6個月等。

我還沒有為選擇編寫日期選擇標準,因為我被困在查詢的第一部分以簡單地計算結果窗格中每天的出現次數。

到目前為止我的查詢如下,但它沒有按返回的天數對數據進行分組。

SELECT CONVERT(VARCHAR(10),[SCAData].[dbo].[Camera].[DTUpdated],105) AS Date_Updated,
COUNT(DTUpdated) AS No_of_Rows 
FROM [SCAData].[dbo].[Camera]
GROUP BY DTUpdated  
ORDER BY DTUpdated; 

結果:

Date_Updated    No_of_Rows
03-10-2006      1
03-10-2006      1
05-10-2006      1
05-10-2006      1
05-10-2006      1
05-10-2006      1
05-10-2006      1
05-10-2006      1
05-10-2006      1
06-10-2006      1
06-10-2006      1
06-10-2006      1
06-10-2006      1
06-10-2006      1

有人可以根據過去 3 個月、3-6 個月的日期選擇提供幫助或建議如何取回這些嗎?

提前謝謝了。

由於列類型是日期時間並且這是 SQL Server 2016,因此將其轉換為日期很容易:

SELECT CONVERT(Date,[SCAData].[dbo].[Camera].[DTUpdated]) AS Date_Updated,
COUNT(DTUpdated) AS No_of_Rows 
FROM [SCAData].[dbo].[Camera]
GROUP BY CONVERT(Date,[SCAData].[dbo].[Camera].[DTUpdated])  
ORDER BY 1; 

如果您真的想通過 VARCHAR 欄位進行操作,只需這樣做:

SELECT CONVERT(VARCHAR(10),[SCAData].[dbo].[Camera].[DTUpdated],105) AS Date_Updated,
COUNT(DTUpdated) AS No_of_Rows 
FROM [SCAData].[dbo].[Camera]
GROUP BY CONVERT(VARCHAR(10),[SCAData].[dbo].[Camera].[DTUpdated],105)  
ORDER BY 1; 

引用自:https://dba.stackexchange.com/questions/282757