Ваша проблема с конверсией происходит здесь:
declare @a datetime = '20/05/2019 9:22:07';
Я думаю, что вы намерены это как строка:
declare @a varchar(255) = '20/05/2019 9:22:07';
Чтобы получить время только с одной цифрой для часа, вы можете использовать:
SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, LEFT(@a, 10), 103), 120) + ' ' + TRIM(RIGHT(@a, 8))
Чаще вы будете использовать:
SELECT CONVERT(VARCHAR(20), CONVERT(DATETIME, @a, 103), 120)
Это производит:
2019-05-20 09:22:07