我正在尝试将以下DATETIME转换为ISO格式:

-- Today's Date
2018-04-16 2:04PM


我计划将其解析为char值作为NVARCHAR,以便可以将其连接为字符串的一部分。

所需结果应为:

-- Date and time unseparated
20180416140422


经过一番研究,我发现here

CONVERT(datetime, GETDATE(), 112)


使用112格式的代码应该可以获取所需的格式,但是以某种方式可以得到以下示例输出:

--Formatted using 112 format
Apr 16 2018 2:04PM


为什么是这样?我只想格式化DATETIME对象而不分开。

另外,无论有没有结束时间,我将如何做?

使用SQL Server 2008R2

最佳答案

它应该是 :

select CONVERT(varchar(20), GETDATE(), 112)


输出量

20180416


如果您都想要日期和时间,则可以尝试使用此方法:

select CONVERT(varchar(20), GETDATE(), 112) + replace(CONVERT(varchar(20), GETDATE(), 108), ':', '')


输出量

20180416193327

10-08 00:23