【问题标题】:Trim part of date field to perform a count and group by query修剪日期字段的一部分以按查询执行计数和分组
【发布时间】:2014-01-25 01:20:12
【问题描述】:

我有下表

EnteredDate              Item

1/2/2014 12:01:59 PM.    Bags

1/2/2014 12:02:54 PM.    Bags

1/3/2014 12:04:55 pm.    Shoes

我想返回一个计数

1/2/2014 Bags  2
1/3/2014 Shoes 1

我可以进行选择和计数查询,但是因为我的数据以长日期格式存储,所以我不能按日期分组,除非我修剪时间部分。可以在 SQL 查询中完成吗?

【问题讨论】:

  • 你用的是什么数据库?

标签: sql


【解决方案1】:

这应该可行:

select cast(entereddate as date), item, count(*)
from table1
group by cast(entereddate as date), item

示例SQL Fiddle

【讨论】:

  • @KenWhite 是的,我忘记了项目字段,我现在已经更新了。还是你的意思是别的?
  • 不,您的编辑在我发表评论后立即通过。 (这就是评论现在消失的原因。)我也赞成这个答案。 :-)
【解决方案2】:

答案可能取决于您使用的 SQL 的风格,但试试这个:

Select Item,
       DateAdd(Day, DateDiff(Day, 0, EnteredDate), 0) as EnteredDate,
       Count(*) As ItemCount
From   YourTableNameHere
Group By Item, 
         DateAdd(Day, DateDiff(Day, 0, EnteredDate), 0)

DateAdd 和 DateDiff 的所有内容本质上都删除了 DateTime 的时间部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多