No SQL Server 2012 e superior, você pode usar
FORMAT()
:SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')
Em versões anteriores, pode ser necessário concatenar duas ou mais conversões de data e hora diferentes para obter o que você precisa, por exemplo:
SELECT
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' +
RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);
Consulte a seção Estilos de data e hora de CAST e CONVERT (Transact-SQL) para todos os estilos de formatação internos.
Gostaria de ter em mente que, a menos que você tenha uma boa razão para isso, quero dizer um realmente Por um bom motivo, a formatação geralmente é um trabalho melhor para a tecnologia que exibe os dados.