, поскольку у вас нет секунд на выборку, я считаю, что по умолчанию она равна :00
. Использование Patindex
и substring
поможет.
declare @str varchar(max) = 'Last Updated on Nov 11 2019, 12:45 pm +08'
select concat(substring(@str, patindex('%[0-1][0-9]:[0-5][0-9]%'
, @str), 5), ':00')
вывод:
или для игнорирования minutes
и seconds
select concat(substring(@str, patindex('%[0-1][0-9]:[0-5][0-9]%'
, @str), 2), ':00:00')
выход:
if примет во внимание am/pm
. cast
это до time
.
select cast(concat(substring(@str, patindex('%[0-1][0-9]:[0-5][0-9]%'
, @str), 2), ':00:00', substring(@str, patindex('%[0-1][0-9]:[0-5][0-9]%', @str) + 6, 2)) as time)