25

我有一个 ShoppingDates 的日期时间列。

假设我有 1000 行

  • 2012 年 7 月 18 日下午 5:33:39
  • 2012 年 7 月 16 日下午 6:64:39
  • 2012 年 7 月 14 日下午 7:34:39
  • 2012 年 7 月 13 日晚上 8 点 30 分 39 秒
  • 2012 年 7 月 13 日晚上 8 点 37 分 39 秒
  • 等等……

    我想计算一个小时时间范围内每次出现的次数

    so 5:00 p.m - 5:59:59 pm
    so 6:00 p.m - 6:59:59 pm
    so 7:00 p.m - 7:59:59 pm
    so 8:00 p.m - 8:59:59 pm
    

    所以在上面的结果中我会得到

    1|5pm-6pm
    1|6pm-7pm
    1|7pm-8pm
    2|8pm-9pm
    

    任何帮助表示赞赏。

    谢谢!

    4

    2 回答 2

    64

    我怀疑你只是想要这样的东西:

    SELECT HOUR(ShoppingDate), COUNT(*) FROM YourTable
    GROUP BY HOUR(ShoppingDate)
    
    于 2013-03-29T17:13:36.737 回答
    4

    尝试这个

    SELECT 
      CONCAT( HOUR(ShoppingDate), ' to ', CONCAT( HOUR(ShoppingDate), ':59:59' ) ) as time_frame,
      COUNT(*) 
    FROM 
      temp
    GROUP BY 
      DATE(ShoppingDate), 
      HOUR(ShoppingDate)
    

    这是SQLfiddle

    注意:我假设 ShoppingDate 是一个日期时间字段

    于 2013-03-29T17:32:06.300 回答