En SQL Server 2012 y versiones posteriores, puede usar FORMAT()
:
SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')
En versiones anteriores, es posible que deba concatenar dos o más conversiones de fecha y hora diferentes para obtener lo que necesita, por ejemplo:
SELECT
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' +
RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);
Consulte la sección Estilos de fecha y hora de CAST y CONVERT (Transact-SQL) para todos los estilos de formato incorporados.
Tendría en cuenta que a menos que tenga una buena razón para ello, me refiero a un realmente buena razón, el formateo suele ser un mejor trabajo para la tecnología que muestra los datos.