所以我在表格中有一个类型为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数据类型转换为日期时间数据类型导致了范围值。',我不确定这意味着什么。无论如何,有可能改变日期的风格。
答案 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