PIVOT表中的日期比较

时间:2012-09-13 10:45:03

标签: sql sql-server-2008 pivot

我有一个PIVOT表的查询,比如,

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表。

1 个答案:

答案 0 :(得分: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