在 SQL Server 2008 R2 中使用 FORMAT 的替代方法

Alternative to using FORMAT in SQL Server 2008 R2

我在 SQL Server 2012 中使用以下内容创建了一个 SELECT:

SELECT 
CAST(FORMAT(CONVERT(DATETIME, date_time, 127), 'yyyy-MM-ddTHH:mm:ssZ') AS NVARCHAR(20)) TimeStamp,
FROM myTable

这将导致日期格式类似于 2019-03-15T13:25:19Z

如何使用 SQL Server 2008 R2 或更早版本获得相同的结果?

您只需使用 CONVERT:

就可以更轻松地实现这一点
SELECT CONVERT(varchar(19),GETDATE(),127) + 'Z';

正如我在评论中提到的 FORMAT 实际上是一个糟糕的函数,它的性能非常糟糕。我今天早些时候发布了一个 到另一个问题,与 CONVERT 相比它的表现有多糟糕。不要只在 2008- 服务器上使用这个表达式,也用这个替换 2012+ 服务器上的 FORMAT 表达式。

我认为这符合您的要求:

select replace(convert(varchar(255), getdate(), 120), ' ', 'T') + 'Z'

代码127returns毫秒,你似乎不想要,所以120似乎更合适。