我有一个日期字段,我从excel作为varchar类型引入,我目前使用此行转换它:
convert(date,[Appt Date],103) as [Appt date]
这可行,但结果是以下格式的日期:
YYYY / MM / DD
根据其他网站,该行末尾的103格式应将此varchar转换为英国格式(DD / MM / YYYY)。
有人可以建议为什么不发生这种情况吗?
答案 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]
击> <击> 撞击>