将varchar转换为日期103时的SQL格式问题

时间:2012-09-11 08:54:19

标签: sql

我有一个日期字段,我从excel作为varchar类型引入,我目前使用此行转换它:

convert(date,[Appt Date],103) as [Appt date]

这可行,但结果是以下格式的日期:

YYYY / MM / DD

根据其他网站,该行末尾的103格式应将此varchar转换为英国格式(DD / MM / YYYY)。

有人可以建议为什么不发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,MSSQL服务器存储日期为YYYY/MM/DD。您只能更改整个服务器上的语言,而不能更改单个数据库。

set language 'british english'

在插入之前先运行它。

或其他替代方法是使用 SET DATEFORMAT 来自MSDN

declare @dates table (orig varchar(50) ,parsed datetime)

SET DATEFORMAT ydm;

insert into @dates
select '2008-09-01','2008-09-01'

SET DATEFORMAT ymd;
insert into @dates
select '2008-09-01','2008-09-01'

select * from @dates

<击> 它应该是VARCHAR而不是DATE

SELECT convert(VARCHAR(20),[Appt Date],103) as [Appt date]

<击>