0
我正在使用以下代码将日期从varchar转换为可接受的日期格式。将VARCHAR转换为DATE时出现SUBSTRING错误
create view v1 as
Select name,time,
CAST(CAST(SUBSTRING([ENTDATE],1,2)+
SUBSTRING([ENTDATE],3,2)+ --month
SUBSTRING([ENTDATE],5,2) --day
AS VARCHAR(10))
AS DATE) as ENTDATE)
from table1
目前的日期显示为990415.
有100000条记录。约10条日期记录不干净,长度小于6.例如:7912.
这些记录导致转换失败错误。有什么办法可以在转换时处理这10条记录吗?
在你的选择列表中使用一个case表达式,分别对待太短的值! – jarlh
您可以使用CASE语句屏蔽它们:'CASE WHEN LEN([ENTDATE])<6 THEN'1/1/2000'ELSE CAST(...)END'。有很多方法可以解决这个问题,因此知道这是一次性转换还是应该在正在进行的过程中使用它会有所帮助。 – rsbarro
这是一次性转换! –