转换为英国日期格式问题

时间:2015-02-17 12:17:42

标签: sql sql-server-2014

我试图通过参数转换传递给存储过程的日期。

我无法将这个日期改为英国格式,这是我尝试的结果和结果:

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

3 个答案:

答案 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