从一种日期样式转换为另一种

时间:2013-10-15 10:46:42

标签: sql date formatting

所以我在表格中有一个类型为DateTime的列,并且采用这种风格'2013-10-15 11:39:59.137'(yyyy-mm-dd hh:mm:ss:mmm)。我试图转换为这种格式(年/月/日)'15 / 10/2013'。我尝试过这样的事情CONVERT(DATETIME,[MyColumnName],103) 103是我想要的风格,但这只是显示完全相同的东西。我还尝试转换为nvarchar(50),然后使用我想要的样式转换为datetime但我得到此错误'将nvarchar数据类型转换为日期时间数据类型导致了范围值。',我不确定这意味着什么。无论如何,有可能改变日期的风格。

2 个答案:

答案 0 :(得分:1)

DateTime将始终显示为。

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

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

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

CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),103),103)

答案 1 :(得分:1)

如果结果再次是日期时间类型,则显示默认表示。如果使用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