小编use*_*794的帖子

SQL Server组按日期和时间

使用SQL Server,我有一个表,CreatedAt其中包含一个具有datetime数据类型的列.我正在尝试编写一个查询,该查询将返回每个日期的总记录,但也会将日期分为一天中的时间,即上午,下午和晚上.因此,例如,下表

ID     createdAt
------------------------------
1      2017-10-17 21:31:52.160
2      2017-10-17 12:12:12.160
3      2017-10-17 09:09:09.160
4      2017-10-17 21:31:52.160
5      2017-10-16 21:31:52.160
Run Code Online (Sandbox Code Playgroud)

会返回以下结果

DayCounter    SessionDay    Morning    Afternoon    Evening
4             2017-10-17    1          1            2
1             2017-10-16    0          0            1
Run Code Online (Sandbox Code Playgroud)

我有以下两个查询按天分组数据,然后拆分从日期中提取时间,但我无法弄清楚如何将它们放在一起.

SELECT 
    COUNT(createdAt) AS counter, 
    CONVERT(DATE, createdAt) AS sessionDay
FROM 
    MyTable
GROUP BY 
    CONVERT(DATE, createdAt)
Run Code Online (Sandbox Code Playgroud)

SELECT 
    CASE 
       WHEN CAST(CONVERT(CHAR(2), createdAt, 108) AS INT) < 12 
          THEN 'Morning'
       WHEN CAST(CONVERT(CHAR(2), createdAt, 108) AS INT) < 17 
          THEN 'Afternoon'
       ELSE 'Evening' …
Run Code Online (Sandbox Code Playgroud)

sql sql-server datetime group-by

2
推荐指数
1
解决办法
496
查看次数

标签 统计

datetime ×1

group-by ×1

sql ×1

sql-server ×1