2013-01-12 2 views
2

이전에 비슷한 질문을 던진 링크를 사용해 보았지만 작동하지 않습니다. 그래서 여기에 내 사건을 게시하고 있습니다.varchar를 시간으로 변환하십시오.

나는 형식으로 시간이 :

09:47:11:895799 

이 내 Microsoft SQL Server 데이터베이스에 varchar(50)로 저장됩니다.

나는이 link과 같이 시간 형식으로 변환하려고합니다.

hh:mm:ss[.nnnnnnn] 

도와 주실 수 있습니까?

+0

어떤 버전의 SQL Server입니까? – Taryn

+2

"작동하지 않습니다"- 어떤 방법으로? 오류 메시지? 결과가 null이거나 예기치 않은 경우? 다른 것? –

+0

''로 변환하기 전에 마지막':'을'.'로 변경해야합니다. –

답변

12

문자열의 형식이 잘못되었습니다. 09:47:11.895799이어야합니다. 당신은 또한 당신의 캐릭터를 만들 수 .

SELECT CAST(STUFF('09:47:11:895799', 9,1,'.') AS TIME) 
+0

예, ':'가 문제였습니다. 감사! – Zanam

+2

@ user1949158 귀하의 필요를 충족하는 경우이 대답을 '수락'하십시오. 그리고 Stack Overflow에 오신 것을 환영합니다! – BellevueBob

3

으로 최종 :를 교체해야 할뿐만 hh:mi:ss:mmm (24 시간 형식) 및 시간과 다음 convert. 즉, 마지막으로 교체하지 않고 밀리 초에서 마지막 3 자리를 잘라내는 것입니다. '.'

서식 지정에 대한 자세한 내용은 여기 MSDN link입니다. 여기에 작업 예가 있습니다 SQL Fiddle

DECLARE @s varchar(50) = '09:47:11:895799' 
SELECT Convert(time, Left(@s,Len(@s)-3), 114) 
관련 문제