Альтернатива использованию FORMAT в SQL Server 2008 R2 - PullRequest
0 голосов
/ 19 марта 2019

Я создал SELECT, используя следующее в SQL Server 2012:

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

Это приведет к дате, отформатированной как 2019-03-15T13:25:19Z

Как я могу достичь того же результата, используя SQLServer 2008 R2 или старше?

Ответы [ 2 ]

3 голосов
/ 19 марта 2019

Вы можете достичь этого гораздо проще, просто используя CONVERT:

SELECT CONVERT(varchar(19),GETDATE(),127) + 'Z';

Как я уже упоминал в своем комментарии, FORMAT на самом деле ужасная функция, она выполняет ужасно. Ранее я сегодня отправил ответ на другой вопрос о том, насколько он плох по сравнению с CONVERT. Не просто используйте это выражение на своих серверах 2008 года, замените выражение FORMAT на серверах 2012+ на это тоже.

1 голос
/ 19 марта 2019

Я думаю, что это то, что вы хотите:

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

Код 127 возвращает миллисекунды, которые вам не нужны, поэтому 120 кажется более подходящим.

...