T-SQL Group按天的日期,但我希望显示查询完整日期

时间:2015-08-11 12:15:05

标签: sql sql-server sql-server-2008 tsql

我想显示日期字段不能分组。

我的查询:

SELECT  DAY(T1.UI_CreateDate) AS DATEDAY, SUM(1) AS TOTALCOUNT 
FROM mydb.dbo.LP_UseImpression T1 WHERE T1.UI_BR_BO_ID = 45  
GROUP BY DAY(T1.UI_CreateDate)

结果:

DATEDAY     TOTALCOUNT
----------- -----------
15          186
9           1
3           2
26          481
21          297
27          342
18          18
30          14
4           183
25          553
13          8
22          469
16          1
17          28
20          331
28          90
14          33
8           1

但我想展示完整日期......

示例结果:

DATEDAY             TOTALCOUNT
-----------         -----------
15/06/2015          186
9/06/2015           1
3/06/2015           2
26/06/2015          481
21/06/2015          297
27/06/2015          342
18/06/2015          18
30/06/2015          14
4/06/2015           183
25/06/2015          553
13/06/2015          8
22/06/2015          469
16/06/2015          1
17/06/2015          28
20/06/2015          331
28/06/2015          90
14/06/2015          33
8/06/2015           1

我想看看结果...... 我无法得到一些结果......

我该怎么办?

感谢名单!

2 个答案:

答案 0 :(得分:1)

如何直接转换为date以删除任何时间组件:

SELECT CAST(T1.UI_CreateDate as DATE) AS DATEDAY, COUNT(*) AS TOTALCOUNT 
FROM mydb.dbo.LP_UseImpression T1
WHERE T1.UI_BR_BO_ID = 45  
GROUP BY CAST(T1.UI_CreateDate as DATE)
ORDER BY DATEDAY;

SUM(1)用于计算点数 的工作情况。但是,因为SQL具有COUNT(*)函数,所以看起来有点尴尬。

答案 1 :(得分:0)

因此,您可以按DAY(T1.UI_CreateDate)分组或使用完整日期进行分组。但这些是不同的。由于这两个日期'2015-04-15''2015-12-15'的{​​{1}}值相同DAY

假设您想在DAY而不是日期分组,请尝试以下版本的查询:

15

sql fiddle for demo:http://sqlfiddle.com/#!6/c3337/1