2011-11-22 107 views
1

我有一個數據表,記錄日期爲年,月,日,小時:分鐘:秒,如下所示。如何將幾個小時和幾分鐘的一系列詳細時間戳縮小到僅限日期?

2011-10-20 10:48:41, 2011-10-20 10:51:37, 2011-11-20 11:01:46 , 2011-11-20 11:16:03 ,2011-11-20 12:02:33 

每個時間標記都與特定項目相關。我試圖計算每天的項目數量,但是當我嘗試按日期分組時,它給了我所有人的列表,因爲時間戳記是如此具體。有沒有辦法減少時間戳,以便它只會看到2011-10-20 vs 2011-10-20 10:48:41。

我嘗試了幾個使用between函數來選擇時間戳或分組函數,但沒有運氣。

回答

0

我不知道你正在使用哪種編程語言,但有大量的工具來解析日期和時間。例如,.NET框架的DateTime.Parse()方法。

如果您不想使用框架工具,則可以在日期時間字符串上始終使用String.split()並傳入空格作爲分隔符,然後僅保留結果數組的第一個元素。

0

在T-SQL中,這裏是如何從日期時間中刪除時間戳的。在.NET中,所有的日期時間對象都有一個Date屬性,它會給你沒有時間戳的日期部分。例如,如果你有一個日期時間對象名稱myDate,那麼myDate.Date會給你一個只有日期部分的新對象。

編輯:再次讀你的問題後,我來到你試圖在SQL中做到這一點的結論。我把你一個快速的例子放在一起。

SELECT COUNT(*) AS DailyItemCount, NewItemDate 
FROM ( 
    SELECT ItemId, 
    CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, ItemDate))) AS NewItemDate 
    FROM MyTable 
) AS NoTimeTable 
GROUP BY NoTimeTable.NewItemDate 
相關問題