Datetime 如何将一系列详细的时间戳(含小时和分钟)缩减为日期?

Datetime 如何将一系列详细的时间戳(含小时和分钟)缩减为日期?,datetime,time,timestamp,Datetime,Time,Timestamp,我有一个数据表,它将日期记录为年-月-日-小时:分钟:秒,如下所示 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:

我有一个数据表,它将日期记录为年-月-日-小时:分钟:秒,如下所示

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函数来选择时间戳或分组函数,但都没有成功。

我不知道您使用的是哪种编程语言,但是有很多工具可以解析日期和时间。例如,.NET framework的
DateTime.Parse()
方法


如果您不想使用框架工具,您可以始终对日期时间字符串使用
String.split()
,并传入一个空格作为分隔符,然后只保留结果数组的第一个元素。

在T-SQL中,以下是如何从日期时间中删除时间戳。 转换(DATETIME,FLOOR(转换(FLOAT,[DateColumn]))

在.NET中,所有datetime对象都有一个Date属性,该属性将为您提供不带时间戳的日期部分。例如,如果您有一个datetime对象名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