将 8 长度的 varchar 转换为 datetime

Converting 8-length varchar to datetime

我有 varchar 列作为数据集:

20110712
20141229
20100222
20140408
20131117
20130912
20140702
20110405

需要转换日期时间数据类型。我试过:CONVERT(date, column_name) 但它 returns 错误:

 Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.

我如何确保这会起作用?

如果您的日期是 varchar,那么您应该可以使用 CONVERT(DATE,[date_field], 112)

DECLARE @dates TABLE 
  (
    [date] varchar(10)
  )

INSERT INTO @dates([date])
VALUES('20110712'),('20141229'),('20100222'),('20140408'),('20131117'),('20130912'),('20140702'),('20110405')

SELECT CONVERT(date,[date],112) 
FROM @dates