我在UNION ALL
中有两个数据集,但是当我向其中一张表添加日期时,UNION ALL
返回错误:
将varchar值转换为数据类型位时转换失败
它们独立地工作正常。
我试图强制转换/转换null值,也试图强制转换为int字符串datetime,但都无效。
period.CalendarDate,
[FOR_StartDate] = (CONVERT(varchar(10),dateadd(day,-1,dateadd(month,datediff(month,0,dateadd(month, 3, datefromparts(left(D.StartFinPeriod, 4)-1, right(D.StartFinPeriod, 2), 1))),0)),120)),
[FOR_EndDate] = (DATEADD(MONTH,12,CONVERT(varchar(10),dateadd(day,-1,dateadd(month,datediff(month,0,dateadd(month, 3, datefromparts(left(D.StartFinPeriod, 4)-1, right(D.StartFinPeriod, 2), 1))),0)),120))),
UNION ALL
period.CalendarDate,
[ForecastPeriod] = '',
[ForecastMonth] = '',
应该无错误地返回数据,UNION
中的其他所有内容都可以正常工作,并且一旦添加日期计算,它就会中断。
某一列导致删除它的错误已修复。我注释掉所有语句,然后慢慢取消注释,以查看是哪一个引起我错误。谢谢戴尔