SQL 날짜 시간 빼기 문
이 자습서에서는 데이터베이스 자습서 오의 날짜를 DateDiff 함수 활용, 다음은 n에 대해 작성 Mssql 날짜 빼기 방법.
SQL에서 두 날짜 빼기
1, 일의 차이
Trunc (sysdate, 'yyyy')를 선택-듀얼;에서 to_date (' 2009-01-04 ', ' YYYY-MM-DD ')
2, 개월 수의 차이
듀얼;에서 Months_between (trunc (sysdate, 'mm'), to_date (' 2009-01 ', ' yyyy-mm '))를 선택
3. 년의 차이
선택 하는 Trunc ((Months_between (Trunc (sysdate, 'DD'), to_date (' 2009-01-01 ', ' yyyy-mm-dd ')) / 12)에서 듀얼;
4, DateDiff ()는 날 '2008.08.25', '2008.09.01' 선택
5, 선택 DateDiff (두 번째, 2009-8-25 12시 15분: 12 ', 2009-9-1 7시 18분: 20 ')-초의 차이 반환 합니다
6,
DateDiff 선택 (분, 2009 년 8 월 25 일 12시 15분: 12 ', 2009-9-1 7시 18분: 20 ')-분의 차이 반환 합니다
7,
DateDiff 선택 (시간, 2009 년 8 월 25 일 12시 15분: 12 ', 2009-9-1 7시 18분: 20 ')-시간의 차이 반환 합니다
질문 3: DateDiff 선택 (2009 년 8 월 25 일 12시 15분: 12 ', 2009-9-1 7시 18분: 20 ')
예제 2
술집을 사용 하 여
Difday로 선택 별개 DateDiff (일, ' 2009-3-12 ', ' 2009-3-15 ')
제목에서
결과: 3
DateTime, DateTime;으로 @dt2로 @dt1을 선언
@dt1 선택 = ' 2008-8-4 9시 36분: 41 ', @dt2 = ' 2008-8-2 9시 33분: 39 ';
int로 @days, @hours int로, int, int;로 @seconds로 @minutes를 선언
@seconds 설정 = DateDiff (2, @dt2, @dt1);
@days 설정 = @seconds / (24 * 60 * 60)
@seconds 설정 = @seconds-@days * 24 * 60 * 60
@hours 설정 @seconds = /(60 * 60);
@seconds 설정 = @seconds-@hours * 60 * 60
@minutes 설정 = @seconds/60;
@seconds 설정 = @seconds-@minutes * 60;
변환 (varchar, @days) + '일' + convert (varchar, @hours) + '시간' + convert (varchar), @minutes 선택) + '분' + 변환 (varchar), @seconds) + '초';
예를 들어 살펴보겠습니다
나는 4 개의 필드가 있는 테이블: 시작 일, 시작 시간, 도착 일, 도착 시간 (이 4 개의 분야는 varchar 형식)
예: 레코드: 1 16시 2 12시 20분
내 목적은 선택 (도착 일 + 도착 시간)를 사용 하 여-(시작 일 + 시작 시간) 테이블에서 시간으로
예를 들어 이전 레코드는 (2*24:00+12:20)-(24:00+16:00) = 20시
이러한 SQL 문을 작성 합니까???
@t 테이블을 선언
(
Beginday int
BeginTime varchar (20)
Endday int
Endtime varchar (20)
)
삽입 @t 1, ' 16:00 ', 2, ' 12:20 '을 선택
유니온 1, ' 3:00 ', 3, ' 19:10 ' 선택
선택
날짜 = rtrim (날짜/60) + ': ' rtrim (날짜 %60) +
보낸 사람
(날짜 선택 = datediff (미, 1, dateadd (d, endday-beginday, beginday)-begintime + endtime) @t에서) t
날짜
-------------------------
20:20
64:10
방법 2
@t 테이블 (시작 일 varchar (10), 시작 시간 varchar (10), 도착 일 varchar (10), 도착 시간 varchar (10)) 선언
@t 선택 '1', ' 16:00 ', '2', ' 12:20 ' 삽입
--시작 한 일은 31 보다 큰 경우
도착 일을 선택 * + DATEPART (hh, 도착 시간)-시작 일 * 24-datepart (hh, 시작 시간)
@t에서