我试图通过参数转换传递给存储过程的日期。
我无法将这个日期改为英国格式,这是我尝试的结果和结果:
select
N'2015-01-17 11:49:54.253',
left(N'2015-01-17 11:49:54.253',10),
cast(left(N'2015-01-17 11:49:54.253',10) as datetime),
convert(datetime,convert(datetime, cast(left(N'2015-01-17 11:49:54.253',10) as datetime)),103),
convert(datetime,convert(datetime, cast(left(N'2015-01-17 11:49:54.253',10) as datetime)),113),
结果:
2015-01-17 11:49:54.253 2015-01-17 2015-01-17 00:00:00.000 2015-01-17 00:00:00.000 2015-01-17 00:00:00.000
答案 0 :(得分:2)
我没有看到日期时间的英国格式,所以猜测你想要这种格式:
dd/mm/yyyy hh:mi:ss:mmm
转换语法(可在sqlserver 2012 +上使用):
SELECT FORMAT(cast('2015-01-17 11:49:54.253' as datetime),'dd/MM/yyyy hh:mm:ss.fff')
结果:
17/01/2015 11:49:54.253
答案 1 :(得分:1)
您正在转换为datetime
,您想要转换为varchar
(或char
等)进行任何格式设置:
select convert(varchar(255), cast(left(N'2015-01-17 11:49:54.253',10) as datetime), 103)
答案 2 :(得分:1)
您需要将其转换为varchar,因为日期时间将始终以'yyyy-mm-dd hh:mi:ss.mmm'格式存储/显示
所以使用:
Select Convert(varchar, Cast('2015-01-17 11:49:54.253' as datetime), 103) as GBDate
您也可以访问MS网站以获取进一步的帮助:https://msdn.microsoft.com/en-us/library/ms187928.aspx