动态SQL数据透视表(使用CONVERT DateField

时间:2015-04-03 10:10:15

标签: mysql sql pivot

我正在尝试使用(date_time_hour)执行以下代码设置的数据透视。

然而,由于我需要通过yyy-dd-mm返回我的日期值,我一直在使用:

CONVERT(CHAR(10),tz_date_hour, 20)

当我在下面使用它时,我无法返回正确的值。

SQL Code sample

我认为它会是这样的:

SET @sql = N'SELECT *
FROM (
        SELECT ivr_reason,' +  
CONVERT(CHAR(10),tz_date_hour, 20) + ', total_usage
FROM [Genesys_var].[dbo].[app_subcf_results2]) AS D

PIVOT(MAX(total_usage) FOR tz_date_hour IN(' + @cols + N')) AS P;';

EXEC sp_executesql @sql;
GO

但它似乎没有用,我找不到任何相关的东西。

1 个答案:

答案 0 :(得分:0)

您不需要在select子句中使用+。应该是这样的:

SET @sql = N'SELECT *
FROM (
        SELECT ivr_reason,  
               CONVERT(CHAR(10),tz_date_hour, 20) AS tz_date_hour, 
               total_usage
        FROM [Genesys_var].[dbo].[app_subcf_results2]
      ) AS D

PIVOT(MAX(total_usage) FOR tz_date_hour IN(' + @cols + N')) AS P;';

EXEC sp_executesql @sql;
GO