转换为英国日期格式问题

Convert to british date format issue

我正在尝试将通过参数传递给存储过程的日期转换。

我无法将此日期转换为英式格式,这是我尝试过的方法和结果:

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

我没有看到带日期时间的英式格式,所以我猜你想要这种格式:

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

您正在转换为 datetime,您想要转换为 varchar(或 char 等)以进行任何格式化:

select convert(varchar(255), cast(left(N'2015-01-17 11:49:54.253',10) as datetime), 103)

您需要将其转换为 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