我尝试从字符串字段更新字段(日期类型)。
字符串字段示例:2015年10月20日
我是sql中的新手。我试过这个问题:
UPDATE [dbo].[EmployeeWithCompCar]
SET [EMER_AttachEndDate] = cast([EMER_info1] as date)
我收到此消息:
Conversion failed when converting date and/or time from character string.
你能帮我解决一下吗?
感谢'!小号
答案 0 :(得分:0)
您需要使用convert()
格式。所以试试这个:
UPDATE [dbo].[EmployeeWithCompCar]
SET [EMER_AttachEndDate] = convert(date, [EMER_info1], 103);
格式可在documentation。
中找到注意:在SQL Server 2012+中,使用try_convert()
代替convert()
。这样,如果字符串格式错误,则结果为NULL
而不是错误。
答案 1 :(得分:0)
您可以使用格式样式为103的CONVERT。
UPDATE [DBO].[EMPLOYEEWITHCOMPCAR]
SET [EMER_ATTACHENDDATE] = CONVERT(DATE, [EMER_INFO1], 103)
如果你不想更新到1900-01-01,你可以使用NULLIF函数来避免这种情况。
UPDATE [DBO].[EMPLOYEEWITHCOMPCAR]
SET [EMER_ATTACHENDDATE] = CONVERT(DATE, NULLIF([EMER_INFO1], ''), 103)