0

所以我在一个表中有一个日期时间类型的列,并且是这种样式“2013-10-15 11:39:59.137”(yyyy-mm-dd hh:mm:ss:mmm)。我正在尝试转换为这种格式(dd/mm/yyyy)'15/10/2013'。我已经尝试过像这样CONVERT(DATETIME,[MyColumnName],103)的 103 是我想要的样式,但这只是显示完全相同的东西。我也尝试过转换为我想要的样式nvarchar(50),然后再转换为datetime我想要的样式,但我收到此错误“将 nvarchar 数据类型转换为日期时间数据类型导致值超出范围。”,我不确定是什么这表示。无论如何,是否可以更改日期的样式。

4

2 回答 2

1

如果结果再次是 datetime 类型,则显示为默认表示。如果您使用 varchar 作为表示,它会显示出来。这里有一个例子:

select CONVERT(varchar(10),getdate(),103)

这可以解释吗

declare @a varchar(10)
select @a=CONVERT(varchar(10),getdate(),103)
print @a
select convert(datetime,@a,103) as 'Datetime', CONVERT(varchar(10),convert(datetime,@a,103),103) as Text
于 2013-10-15T10:52:02.390 回答
1

ADateTime将始终如此显示。

如果要更改其显示方式,则需要将其转换为VARCHAR

CONVERT(VARCHAR(10),[MyColumnName],103)

现在,这是出于显示原因。如果您需要转换回日期时间,您需要再次提供格式:

CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),103),103)
于 2013-10-15T10:48:45.843 回答