Sql 转换为mm/dd/yyyy格式
我有一个名为SF_Data的表,还有一个名为IN_Date的列,ID数据如下所示:Sql 转换为mm/dd/yyyy格式,sql,sql-server-2008,tsql,converter,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) 我正在尝试将输入日期转换为mm/dd/yyyy格式。我试着这样做: Select convert(varchar,IN_Date,103) From dbo.SF_Data 但格式仍然没有改变。谁能告诉我哪里出了问题当从
ID IN_Date
1 9/8/2010
2 26/04/2011
3 20/09/2010
IN_Date的数据类型为varchar(50)
我正在尝试将输入日期转换为mm/dd/yyyy格式。我试着这样做:
Select convert(varchar,IN_Date,103) From dbo.SF_Data
但格式仍然没有改变。谁能告诉我哪里出了问题当从
varchar
转换为varchar
时,转换为convert
的第三个参数没有意义。因此,根据@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
在格式化之前,您需要转换以修复数据(到正确的数据类型)
Select
convert(varchar,
convert(date, IN_Date, 103),
101)
from dbo.SF_Data
如果是日期-为什么不是
DATETIME
??那会让事情变得简单多了@GBN该表是由其他人创建的更改列数据类型!!从长远来看,你会为自己省去很多痛苦…….是的-但首先它是一个VARCHAR-它需要先转换为DATETIME
,然后再转换回VARCHAR(以不同的格式)。它会给我以下错误消息102,级别15,状态1,第1行“101”附近的语法不正确。@Peter-只是缺少一个逗号,固定的it@Peter:Joel修复了我的语法,缺少逗号。哎呀。