从具有欧洲日期格式的字符串转换为ISO dateformat

时间:2016-01-29 08:18:53

标签: sql sql-server date datetime

我想问一下是否有更快的方法:

CONVERT(NVARCHAR(10), CONVERT(date, '18.02.2016', 104), 112)

以下内容会产生错误:

CONVERT(date, '18.02.2016', 112)

输入的字符串不是112

使用SQL Server 2012。

2 个答案:

答案 0 :(得分:2)

第一个表达式是正确的方法,您可以考虑使用char(10)。

使用FORMAT的这种替代方法将允许除标准格式之外的其他方法。 FORMAT是在sqlserver 2012中引入的。

SELECT FORMAT(CONVERT(date, '18.02.2016', 104), 'yyyyMMdd')

答案 1 :(得分:0)

有了这个:

set dateformat dmy
select CONVERT(datetime, '18.02.2016')

结果是:

2016-02-18 00:00:00.000

所以:

set dateformat dmy
select CONVERT(VARCHAR(10), CONVERT(datetime, '18.02.2016'), 112)

结果是:

20160218