首页 > 解决方案 > 将 varchar 值转换为数据类型位时转换失败。联合所有

问题描述

我有两个数据集,UNION ALL但是当我将日期添加到其中一个表时,会UNION ALL返回错误:

将 varchar 值转换为数据类型位时转换失败

独立他们工作正常。

我尝试转换/转换 null 值也尝试转换为 int string 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工作,一旦我添加日期计算,它就会中断。

期望的结果

标签: sqlsql-serverssms

解决方案


推荐阅读