如何将小时和分钟的一系列详细时间戳减少到日期?

时间:2011-11-22 16:30:06

标签: 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:41。

我尝试了几个使用between函数来选择时间戳或在分组函数中但没有运气。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在T-SQL中,这里是从日期时间中删除时间戳的方法。 CONVERT(DATETIME,FLOOR(CONVERT(FLOAT,[DateColumn])))

在.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