2012-04-11 3 views
0

date1 varchar(4)date2 varchar(4)의 두 필드가 있습니다. 날짜 형식은 HHmm입니다. 여기서 HH는 시간이고 mm은 분입니다.SQL에 두 개의 시간 소인 추가

어쨌든 SQL에 두 개의 타임 스탬프를 추가하고 몇 시간과 몇 분을 계산할 수 있습니까?

date1 = 0230 date2 = 0145 will total 0415 
date1 = 0030 date2 = 0035 will total 0105 
+1

참고로, 문제의 태그에 DBMS를 지정하는 것은 좋지 않습니다. –

+0

죄송 합니다만 편집에 추가 태그를 추가 할 수 없습니다. – fes

답변

2
declare @d1 varchar(4), @d2 varchar(4), @dif int 

set @d1 = '0230' 
set @d2 = '0145' 

set @dif = (CAST(left(@d1, 2) as int) * 60) + (CAST(left(@d2, 2) as int) * 60) + CAST(right(@d1, 2) as int) + CAST(right(@d2, 2) as int) 

select RIGHT('00' + cast(floor(@dif/60) as varchar), 2) + RIGHT('00' + CAST(@dif % 60 as varchar),2) 
+0

감사합니다. 부분 문자열 경로를 사용하려고했지만 왼쪽과 오른쪽이 완벽합니다. – fes

0

정말 타임 스탬프인지 모르겠지만 정수로 저장하지 않으시겠습니까?

어쨌든 .. 거기에 mysql 함수가 있는지 잘 모르겠다. 다음을 검색 할 수 있습니다. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 많은 도움이 될지 확실하지 않습니다. 초 단위로 저장하면 간단히 mysql을 추가하고, 그렇지 않은 경우 스크립트로 가져 와서 초 단위로 변환하고, 한꺼번에 추가 한 다음 원하는 경우보다 읽기 쉬운 형식으로 변환 할 수 있습니다.

+0

OP는 mysql을 사용하지 않습니다. –

+0

브래드의 유산을 따라서 나는 단지 조작을 할 수 있어야합니다. 난 그냥 부분 문자열을 사용하여 시간과 분을 나눠서 뭔가를 밖으로 작동해야 할 수도 있습니다 생각해. – fes

0

이 (사용 시간 또는 날짜 시간) 시도 :

'01:02:03' 

날짜와 시간의 형식입니다

select ADDTIME(time1,time2); 

MySQL의 시간은

'2003-12-31 01:02:03' 
+0

OP는 MySQL을 사용하지 않습니다. –

0

당신이 일어날 경우입니다 SQL Server를 사용 중이면 여기에 설명 된 DATEDIFF 함수를 사용할 수도 있습니다. http://msdn.microsoft.com/en-us/library/ms189794.aspx

이렇게하면 datetime 값의 일부분을 구할 수 있습니다. DATEADD는 처리 방법에 따라이 용도로 사용할 수 있습니다.

+0

OP에는'varchar' 값이 있습니다. 'datetime'이 아닙니다. –

관련 문제