2012-03-14 3 views
0

목표 :새로운 데이터 형식으로 변환 한 후 시간을 계산

Hour 
----- 
2 
2,5 
1 

문제점 :
가 특정 데이터 타입에 열 상영 시간 및 종료 시각을 변환하는 임의 possibiltiy 한 후 하
이 목록에 데이터를 표시 할 X1-의 X2의 calculacution은

CREATE TABLE Data 
( 
    StartTime VARCHAR(5), 
    EndTime VARCHAR(5), 
) 
GO 

INSERT INTO Data(StartTime,EndTime) 
SELECT '10:00','12:00' UNION ALL 
SELECT '13:30','16:00' UNION ALL 
SELECT '14:00','15:00' UNION ALL 
GO 
+0

http://msdn.microsoft.com/en-us/library/ms187928.aspx –

+0

SQL-SERVER의 버전은 무엇? –

+1

찾고있는 특정 데이터 유형은 무엇입니까? 왜 StartTime과 EndTime을 변환하고 싶습니까? 달성하고자하는 것은 무엇입니까? 지금까지 뭐 해봤 어? –

답변

1

편집 :는 소수의 분을 얻으려면

SELECT ROUND(CAST(Mins AS FLOAT)/60,2) AS [hour] 
FROM (
SELECT DATEDIFF(minute, CAST(StartTime AS TIME),CAST(EndTime AS TIME)) AS Mins 
    FROM Data 
) A 
+0

TIME 데이터 유형 때문에 sql2005에서 작동하지 않으며 하나만 필요한 곳에 두 개의 선택 항목이 있습니다. – daniloquio

0

당신은 SQL-SERVER 2008을 사용하는 경우, 왜 그냥 time 객체를 사용하지 마십시오. 그런 다음 적절한 시간 비교 함수를 실행할 수 있습니다. 그렇지 않은 경우에도 converting을 사용하여 datetime 및 비교 기능을 실행하도록 할 수 있습니다. 나는 날짜/시간에 단지 시간 만 있으면 변환 된 날짜가 최소 날짜라고 믿습니다.

1
SELECT DATEDIFF(mi, CONVERT(DATETIME, StartTime), CONVERT(DATETIME, EndTime)) 
        /60.0 AS Hour 
FROM Data 

그것은 당신의 예를 들어 데이터의 일을하지만, 종료 시각이 다음 날이 될 수 있다면 당신처럼 확인해야합니다 :

StarTime : 22시 반

ENDTIME : 1시 20분

그 escenario는 가능한가? 그럴 경우 시간뿐만 아니라 시작 및 종료 시간에 대한 날짜를 저장해야합니다.

관련 문제