我有一个名为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
但是格式仍然没有改变。有人能告诉我我哪里错了吗?
发布于 2011-08-30 19:02:06
在格式化之前,您需要一个转换来固定数据(到正确的数据类型)...
Select
convert(varchar,
convert(date, IN_Date, 103),
101)
from dbo.SF_Data
发布于 2011-08-30 18:59:35
从varchar
转换为varchar
时,convert
的第三个参数没有任何意义。因此,根据@marc_s的注释,您必须使用103格式将varchar
转换为datetime
,然后指定101格式从datetime
转换为varchar
:
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
。
https://stackoverflow.com/questions/7248329
复制相似问题