在SQL中使用NULL和BLANK更新表错误

时间:2016-06-14 04:19:28

标签: sql sql-server-2014

我想创建更新以将datetime nvarchar转换为datetime。但我有转换的问题,因为有NULL和BLANK。

update copy_vw_work_in_progress_so_list
Set ScanDateSO = CAST(FORMAT(cast([date_scan_so] as bigint),'####-##-## ##:##:##') as datetime)
你能帮助我吗? 我正在使用SQL SERVER 2014

2 个答案:

答案 0 :(得分:0)

添加lenght [date_scan_so]为> 0

的地方
update copy_vw_work_in_progress_so_list
Set ScanDateSO = CAST(FORMAT(cast([date_scan_so] as bigint),'####-##-## ##:##:##') 
as datetime)
Where Len[date_scan_so]>0

答案 1 :(得分:0)

如果您知道要使用null和空白的值,那么您可以使用案例表达式(https://msdn.microsoft.com/en-us/library/ms181765.aspx

这样的事情:

UPDATE copy_vw_work_in_progress_so_list SET ScanDateSO = 
  CASE 
     WHEN [date_scan_so] = ' ' THEN NULL
     WHEN [date_scan_so] IS NULL THEN NULL
     ELSE 
       CAST(FORMAT(CAST([date_scan_so] AS bigint),'####-##-## ##:##:##') AS datetime)
  END