SELECT @sql='
select
*
from (
select ''Ongoing'' AS Ongoing,
Coalesce(COUNT(project),0) AS project, Coalesce(COUNT(year(u.PlannedStartDate)),0) as [y]
from Projects u WHERE
u.actualstartdate IS NULL
AND u.Startdate < ''+GETDATE()+''
AND ID ='''+@ID+'''
) Data
PIVOT (
COUNT(project)
FOR [y]
IN (
' + @Years + '
)
) PivotTable
'
在这里,我想通过cur日期,但它不起作用.. 这是因为GETDATE()的值不在字符串
中答案 0 :(得分:2)
将AND u.Startdate < ''+GETDATE()+''
更改为AND u.Startdate < GETDATE()
答案 1 :(得分:1)
只要删除它周围的引号我会想
SELECT @sql='
select * from ( select ''Ongoing'' AS Ongoing, Coalesce(COUNT(project),0) AS project,
Coalesce(COUNT(year(u.PlannedStartDate)),0) as [y] from Projects u
WHERE u.actualstartdate IS NULL AND u.Startdate < GETDATE() AND ID ='''+@ID+'''
) Data PIVOT ( COUNT(project) FOR [y] IN ( ' + @Years + ' ) ) PivotTable '
答案 2 :(得分:0)
尝试将GETDATE()强制转换为这样的varchar:CAST(GETDATE()AS varchar)