我想从new_CRSE_EDTE转移到其他数据库和表。
我的代码在这里
select try_convert(datetime,LEFT([CRSE_EDTE], 4)+'-'+RIGHT([CRSE_EDTE],2)+'-28',111) as new_CRSE_EDTE
FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER]
update DMSTAG.dbo.TEMP_AKAUN_MARA
set new_TarikhTamatPengajian = new_CRSE_EDTE
FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER]
where DMSTAG.dbo.TEMP_AKAUN_MARA.STUDENTN = [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER].[STUDENTN]
collate latin1_general_CI_AI
此代码正常运行,但仅适用于从2020年开始的年份。
CRSE_EDTE的原始数据有多年,例如1991-10-11 00:00:00:000
答案 0 :(得分:0)
如果您还没有,请在尝试此代码之前备份您的数据库。这是未经测试的:
update DMSTAG.dbo.TEMP_AKAUN_MARA
set new_TarikhTamatPengajian = (
select TOP 1 try_convert(datetime,LEFT([CRSE_EDTE], 4)+'-'+RIGHT([CRSE_EDTE],2)+'-28',111) as new_CRSE_EDTE
FROM [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER]
where DMSTAG.dbo.TEMP_AKAUN_MARA.STUDENTN = [SMBM_DBPELJ].[DBPELJ].[MSTUMASTER].[STUDENTN]
collate latin1_general_CI_AI)