Sql 我在varchar中有一列日期,需要转换为date

Sql 我在varchar中有一列日期,需要转换为date,sql,sql-server,converter,Sql,Sql Server,Converter,日期当前显示为:ddmmmyyyy(2013年12月12日) 我一直在玩弄这个公式: DECLARE @Date char(8) set @Date='12312009' SELECT CONVERT(datetime,RIGHT(@Date,4)+LEFT(@Date,2)+SUBSTRING(@Date,3,2)) 但是我没有成功,有人能帮我解决这个问题吗。此外,我所有的日期都在一个名为TERMDT的列中,我想将所有新的日期值放在一个新的列中,格式如下。只需给convert()一个适当的第

日期当前显示为:
ddmmmyyyy
(2013年12月12日)

我一直在玩弄这个公式:

DECLARE @Date char(8)
set @Date='12312009'
SELECT CONVERT(datetime,RIGHT(@Date,4)+LEFT(@Date,2)+SUBSTRING(@Date,3,2))
但是我没有成功,有人能帮我解决这个问题吗。此外,我所有的日期都在一个名为
TERMDT
的列中,我想将所有新的日期值放在一个新的列中,格式如下。

只需给
convert()
一个适当的第三个参数(格式):


这是mysql还是sql server?它们不是一回事。为什么要将日期存储为varchar?你真的需要使用正确的数据类型。sql server,很抱歉。我收到了这个巨大的格式非常糟糕的表,我需要在它上运行所有这些查询,这实际上是不可能做到的。我永远不会用这种方式创建表格。我关心的是你正在谈论更改格式。您需要更改数据类型。日期时间不是以某种格式存储的。希望您的新列是日期或日期时间列。将消除所有这种痛苦。
SELECT CONVERT(datetime,
               RIGHT(d, 4) + LEFT(d,2) + SUBSTRING(d, 3, 2),
               112)
from (select '12312009' as d) t