Вы можете попробовать что-то вроде ниже для значения дб AM
,
DECLARE @val AS VARCHAR(100)='10/15/2015 10:05:02 AM'
SELECT @val = CONVERT(TIME ,@val)
SELECT SUBSTRING(@val ,1 ,8) RetValue
Ниже со значением дб PM
,
DECLARE @val AS VARCHAR(100)='10/15/2015 10:05:02 PM'
SELECT @val = CONVERT(TIME ,@val)
SELECT SUBSTRING(@val ,1 ,8) RetVal
Если вы используете SQL -server 2008 и ниже ниже,
Тип TIME не определен тип системы.
Тогда попробуйте это,
DECLARE @val AS VARCHAR(50)='2/15/2015 10:05:02 PM'
SELECT CONVERT(VARCHAR ,CAST(@val AS DATETIME) ,108) ReturnValue
Если у вас есть значение DB, как '12/15/2015 10:05:02 AM'
ИЛИ '02/15/2015 10:05:02 PM'
и еще вы хотите результат в формате 12 час, вы можете сделать что-то, как показано ниже ,
DECLARE @val AS VARCHAR(50)='02/15/2015 10:05:02 PM'
--SET @val = SUBSTRING(@val,1,19)
SELECT CONVERT(VARCHAR ,CAST(SUBSTRING(@val,1,19) AS DATETIME) ,108) ReturnValue
'02/15/2015 10:05:02 PM
' и '2/15/2015 10:05:02 PM
' - оба возвращают ожидаемый результат.
https://msdn.microsoft.com/en-us/library/ms187748.aspx? –
, что должно ожидаться, если оно будет 10/15/2015 10:05:02 PM ?? –
ожидаемый результат 10:05:02 – Tom