Sql 最大值(BCASTdate-120)

Sql 最大值(BCASTdate-120),sql,tsql,sql-server-2012,Sql,Tsql,Sql Server 2012,我有一个sql表,当BC_DATE减去120天小于等于派生日期时,我需要将MIGRATE字段更新为M 这应该是我的输出 BC_DATE Migrate Flag 2018-09-09 M 2018-11-01 M 2018-12-21 M 2019-01-13 NULL 2019-02-13 NULL 2019-03-13 NULL declare @date int null set @date

我有一个sql表,当BC_DATE减去120天小于等于派生日期时,我需要将MIGRATE字段更新为M 这应该是我的输出

 BC_DATE        Migrate Flag
 2018-09-09       M
 2018-11-01       M
 2018-12-21       M
 2019-01-13      NULL
 2019-02-13      NULL
 2019-03-13      NULL

 declare @date int null
 set @date = '20190401'

 update table 
 set Migrate_flag = 'M'
 when max(convert(varchar,dateadd(day,-120,[BCAST DATE]),112)) < = @date
请更正我的更新声明以使其生效。

我想您只需要:

 update table 
     set Migrate_flag = 'M'
     where [BCAST DATE] < dateadd(day, -120, convert(date, convert(varchar(255), @date)));

下面是我得到的错误:msg8115,级别16,状态2,第27行算术溢出错误将表达式转换为数据类型datetime。声明已终止。B广播日期采用此格式2019-03-01日期采用此格式20190301B广播日期的数据类型是什么?
declare @date date;
set @date = '20190401'