Sql 从交叉联接表中的函数返回的Concat值
我需要将SSRS参数中的日期输入UTC转换函数 在concat中无法识别这些值 我现在在“s”附近发现语法错误Sql 从交叉联接表中的函数返回的Concat值,sql,sql-server,reporting-services,Sql,Sql Server,Reporting Services,我需要将SSRS参数中的日期输入UTC转换函数 在concat中无法识别这些值 我现在在“s”附近发现语法错误 select concat(s.y+s.m+s.d]) from( SELECT y.[Value] as y, m.[Value] as m, d.[Value] as d FROM ssrs.FnSplit(@YEAR,',') y cross join ssrs.FnSplit(@MONTH,',') m cross join ssrs.FnSplit(@DAY,',') d
select concat(s.y+s.m+s.d])
from(
SELECT y.[Value] as y, m.[Value] as m, d.[Value] as d
FROM ssrs.FnSplit(@YEAR,',') y
cross join ssrs.FnSplit(@MONTH,',') m
cross join ssrs.FnSplit(@DAY,',') d
) s
注释前编码
DECLARE @YEAR varchar(max)='2222,2111'
DECLARE @MONTH varchar(max)='1,2,3'
DECLARE @DAY varchar(max)='1,2'
DECLARE @START_DATE DATE
--SELECT @START_DATE = CAST((SELECT [Value] FROM ssrs.FnSplit(@YEAR,',') AS VARCHAR(4)) + '-' + RIGHT('0' + CAST((SELECT [Value] FROM ssrs.FnSplit(@MONTH,',') AS VARCHAR(2)), 2)
-- + '-' + CAST((SELECT [Value] FROM ssrs.FnSplit(@DAY,',') AS VARCHAR(4))
select concat(y.[Value]+m.[Value]+d.[Value])
from (
SELECT y.[Value], m.[Value], d.[Value]
FROM ssrs.FnSplit(@YEAR,',') y
cross join ssrs.FnSplit(@MONTH,',') m
cross join ssrs.FnSplit(@DAY,',') d
) s
你在找什么
SELECT DATEFROMPARTS(T1.Value, T2.Value, T3.Value) Dates
--Or CONCAT(T1.Value, '-', T2.Value, '-', T3.Value) StrDates
FROM STRING_SPLIT(@YEAR, ',') T1
CROSS APPLY
STRING_SPLIT(@MONTH, ',') T2
CROSS APPLY
STRING_SPLIT(@DAY, ',') T3;
将STRING\u SPLIT()
函数替换为您的(fnslit
)。您正在寻找
SELECT DATEFROMPARTS(T1.Value, T2.Value, T3.Value) Dates
--Or CONCAT(T1.Value, '-', T2.Value, '-', T3.Value) StrDates
FROM STRING_SPLIT(@YEAR, ',') T1
CROSS APPLY
STRING_SPLIT(@MONTH, ',') T2
CROSS APPLY
STRING_SPLIT(@DAY, ',') T3;
将
STRING\u SPLIT()
函数替换为您的(fnslit
)。您在使用concat
的地方不再可以访问y
您现在正在访问的s
。您有一个不必要的括号选择concat(s.y+s.m+s.d])
。你也可以考虑使用不同的别名来避免你混淆的值。你已经不能访问<代码> y>代码>你在使用<代码> CONTAG/COD>你现在访问<代码> S >代码>。你有一个不必要的括号<代码>选择CONTAT(S.Y+S.M+S.D])< /代码>。您也可以考虑使用不同的别名来避免所造成的混乱。