我有一个从 excel 中作为 varchar 类型提取的日期字段,我目前使用以下行对其进行转换:
convert(date,[Appt Date],103) as [Appt date]
这可行,但结果是以下格式的日期:
年年/月/日
根据其他站点,行尾的 103 格式应将此 varchar 转换为英国格式( DD/MM/YYYY )。
谁能告诉我为什么这没有发生?
我有一个从 excel 中作为 varchar 类型提取的日期字段,我目前使用以下行对其进行转换:
convert(date,[Appt Date],103) as [Appt date]
这可行,但结果是以下格式的日期:
年年/月/日
根据其他站点,行尾的 103 格式应将此 varchar 转换为英国格式( DD/MM/YYYY )。
谁能告诉我为什么这没有发生?
默认情况下,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]