In SQL Server 2012 e versioni successive puoi utilizzare FORMAT()
:
SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')
Nelle versioni precedenti, potresti dover concatenare due o più conversioni datetime diverse per ottenere ciò di cui hai bisogno, ad esempio:
SELECT
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' +
RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);
Consulta la sezione Stili di data e ora di CAST e CONVERT (Transact-SQL) per tutti gli stili di formattazione incorporati.
Tengo presente che, a meno che tu non abbia una buona ragione, intendo un davvero buona ragione, la formattazione è solitamente un lavoro migliore per la tecnologia che visualizza i dati.