2011-11-22 37 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 
相关问题