2012-09-13 272 views
0

我有透视表,如查询,日期比较

SELECT * 
    FROM (SELECT ID, ID,Date FROM Table1) AS P 
PIVOT 
    ( 
     COUNT (P.ID) 
     FOR P.Date in ([08/17/2006],[08/18/2006]) -- [MM/DD/YYYY] - Format 
    ) as pvt 

在上面的查询,P.Datedatetime2(7)所以,我收到的数据一样,

P.Date = '2006-08-17 15:30:23.0000000' 

但我与'2006-08-17'比较。这里日期部分是相同的,即使我没有得到结果。

我的目标是在日期匹配时显示ID的计数。

我试过Convert(),但是PIVOT表不允许在FOR表中阻止。

回答

2

你需要做的CAST()在内部选择:

SELECT * 
FROM 
(
    SELECT ID, ID, Cast(yourDateValue as Date) newdate -- perform the conversion here 
    FROM Table1 
) AS P 
PIVOT 
( 
    COUNT (P.ID) 
    FOR newdate in ([08/17/2006], [08/18/2006]) -- [MM/DD/YYYY] - Format 
) as pvt