1

我有一个从 excel 中作为 varchar 类型提取的日期字段,我目前使用以下行对其进行转换:

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

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

年年/月/日

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

谁能告诉我为什么这没有发生?

4

1 回答 1

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]

于 2012-09-11T08:55:37.070 回答