动态SQL数据透视表(带有CONVERT DateField [英] Dynamic SQL Pivot (with CONVERT DateField

查看:101
本文介绍了动态SQL数据透视表(带有CONVERT DateField的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用(date_time_hour)仅在下面的代码上做一个枢轴.

I'm trying to do a pivot which I have managed to do on the below code only using (date_time_hour).

但是我需要用yyy-dd-mm返回我的日期值,我一直在使用:

However as I need to return my date value by yyy-dd-mm I have been using:

CONVERT(CHAR(10),tz_date_hour, 20)

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

When I use it in the below I'm unable to return the correct values.

我认为应该是这样的:

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

但是似乎找不到任何相关内容.

But it doesn't seem to work any I can't find anything related.

推荐答案

您无需在select子句中使用+.应该是这样的:

You don't need to use + in select clause. Should be something like this:

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

这篇关于动态SQL数据透视表(带有CONVERT DateField的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆