Como formatar a datetime no servidor SQL

estou a tentar portar a função MySQL {[[0]} para o equivalente MsSQL usando CONVERT().
Como formatar uma cadeia de datas equivalente no servidor SQL 2012 para dar esta saída '2014-05-24 01:24:37 AM'?

Author: Martin Smith, 2014-05-24

1 answers

No SQL Server 2012 e up você pode usar FORMAT():

SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')

Em versões anteriores, poderá ser necessário concatenar duas ou mais conversões de datetime diferentes para obter o que necessita, por exemplo:

SELECT 
    CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' + 
    RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);

Veja a secção de estilos de data e hora de CAST e CONVERT (Transact-SQL) para todos os estilos de formatação incorporados.


Eu teria em mente que a menos que você tenha uma boa razão para isso, quero dizer uma boa razão, formatação é geralmente um trabalho melhor para a tecnologia que exibe os dados.
 14
Author: Cᴏʀʏ, 2015-11-24 14:07:42