我想创建更新以将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
答案 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