当将varchar值转换为数据类型位时,转换失败。 UNION ALL

问题描述 投票:0回答:1

我在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中的其他所有内容都可以正常工作,并且一旦添加日期计算,它就会中断。

Desired result

sql sql-server ssms
1个回答
0
投票

某一列导致删除它的错误已修复。我注释掉所有语句,然后慢慢取消注释,以查看是哪一个引起我错误。谢谢戴尔

© www.soinside.com 2019 - 2024. All rights reserved.