Mysql 动态SQL数据透视(带转换日期字段)

Mysql 动态SQL数据透视(带转换日期字段),mysql,sql,pivot,Mysql,Sql,Pivot,我正在尝试做一个pivot,我只使用(date\u time\u hour)在下面的代码中实现了这个pivot 但是,由于我需要在yyy dd mm之前返回日期值,我一直在使用: CONVERT(CHAR(10),tz_date_hour, 20) 当我在下面使用它时,我无法返回正确的值 我以为会是这样的: SET @sql = N'SELECT * FROM ( SELECT ivr_reason,' + CONVERT(CHAR(10),tz_date_hour, 2

我正在尝试做一个pivot,我只使用(date\u time\u hour)在下面的代码中实现了这个pivot

但是,由于我需要在yyy dd mm之前返回日期值,我一直在使用:

CONVERT(CHAR(10),tz_date_hour, 20)
当我在下面使用它时,我无法返回正确的值

我以为会是这样的:

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

但是它似乎不起任何作用,我找不到任何相关的东西。

您不需要在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

您收到了什么错误?这是用于哪个RDBMS的?请添加一个标记,以指定您是否正在使用
mysql
postgresql
sql server
oracle
db2
-或其他完全相同的功能。您好,我只显示如下。没有找到tz_date\u hour检查我的答案,它应该适合您。