SQL 날짜 시간 빼기 문

출처: 인터넷
작성자: 사용자
키워드: 네트워크 프로그래밍 데이터베이스 합성

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에서

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.