2017-03-08 4 views
0

12 시간 형식을 표시하고 오전/오후없이 MSSQL 2014에서 datetime 데이터를 가져 오려고합니다. 다음과 같이 나는 인터넷을 통해 제안 모든 노력을했다 :AM/PM을 사용하지 않고 시간을 12 시간 형식으로 변환

time_adm = convert(varchar(15), CAST(hadmlog.admdate AS TIME), 100), --//2:30PM 

가 나는 또한 format()을 시도하지만 "공통 언어 런타임 (CLR) 실행이 경량 풀링에서 지원되지 않습니다 ... 등"오류

을 반환
time_adm22 = FORMAT(CAST(hadmlog.admdate AS DATETIME),'hh:mm') --error 
+0

이 시도를 (DECLARE @t varchar (7) = convert (varchar (15), TIME), 100) SELECT 서브 테이블 (@t, 1, LEN (@t) -2)' – Sathish

+0

당신의 경우, CAST (hadmlog.admdate AS TIME), 100) SELECT SUBSTRING (@t, 1, LEN (@t) -2)' – Sathish

답변

0

DECLARE @tbl TABLE(SomeDate DATETIME); 
INSERT INTO @tbl VALUES({ts'2017-01-01 07:13:52'}),({ts'2017-01-01 17:13:52'}) 

SELECT t.SomeDate 
     ,a.FormattedTime 
     ,LEFT(a.FormattedTime,PATINDEX('%[a,p]m',a.FormattedTime)-1) 
FROM @tbl AS t 
CROSS APPLY(SELECT CONVERT(VARCHAR(20),CAST(t.SomeDate AS TIME),100) AS FormattedTime) AS a 

결과 같은 것을 시도 할 수

SomeDate     FormattedTime YourOutput 
2017-01-01 07:13:52.000 7:13AM   7:13 
2017-01-01 17:13:52.000 5:13PM   5:13 
0

당신이 할 수 있었던 AM과 PM 제거하기 위해 문자열 Replace을 시도해보십시오 AS)`((15 VARCHAR를 @t의 VARCHAR (7)을 선언 = 변환), CAST (GETDATE (:

select hadmlog.admdate, 
    REPLACE(REPLACE(convert(varchar(7), CAST(hadmlog.admdate AS Time) , 100),'AM',''),'PM','') as Converted 
from hadmlog 
관련 문제