转换为mm / dd / yyyy格式

时间:2011-08-30 18:56:54

标签: sql sql-server-2008 tsql converter

我有一个名为SF_Data的表,并且有一个名为IN_Date的列,ID数据如下:

ID      IN_Date
1       9/8/2010
2       26/04/2011
3       20/09/2010

IN_Date的数据类型是varchar(50)。

我正在尝试将IN_Date转换为mm / dd / yyyy格式。我试过这样做:

Select convert(varchar,IN_Date,103) From dbo.SF_Data

但格式仍然没有改变。谁能告诉我哪里出错了

2 个答案:

答案 0 :(得分:8)

在格式化之前,您需要转换来修复数据(到正确的数据类型) ...

Select
     convert(varchar,
         convert(date, IN_Date, 103),
     101)
from dbo.SF_Data

答案 1 :(得分:1)

convert转换为varchar时,varchar的第3个参数没有意义。因此,根据@marc_s的评论,您必须使用103格式将varchar转换为datetime,然后从datetime转换为varchar,指定101格式:

Select convert(varchar(12),convert(datetime,IN_Date,103),101) From dbo.SF_Data

例如:

select convert(varchar(12),convert(datetime,'31/12/2001',103),101)

打印12/31/2001

See MSDN.