8

我正在执行 SELECT INTO 语句以从另一个表中的某些值创建一个新表。我想在新创建的表(pol_eff_dt,pol_exp_dt)上添加两个额外的列,并使它们最初都为 NULL(这些列也存在于源表中,因此它们会提取该数据)。我还需要确保它们以 DATETIME 类型出现。我怎样才能以这种方式投射它们?我已经尝试了很多东西,但没有任何东西可以编译。

SELECT DISTINCT bnd_ser_nbr,
trans_nbr,
uws_product_cd,
bill_id,
NULL AS pol_eff_dt, 
NULL AS pol_exp_dt
INTO ER_RO_urs_prem_detail
FROM urs_prem_detail_interim
4

1 回答 1

13

您可以尝试将NULL显式转换为DATETIME,如下所示:

SELECT DISTINCT bnd_ser_nbr,
trans_nbr,
uws_product_cd,
bill_id,
CAST(NULL AS DATETIME) AS pol_eff_dt, 
CAST(NULL AS DATETIME) pol_exp_dt
INTO ER_RO_urs_prem_detail
FROM urs_prem_detail_interim

演示在这里。在演示中,如果你改变了额外的 2 列被强制转换的类型,然后尝试赋值DATETIME,你会得到一个转换错误。

于 2014-06-19T17:00:01.240 回答