MySQL 의 DataADD 함수 와 날짜 포맷 함수 설명

6598 단어 Data ADD날짜 포맷
  • DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type)
  • 이 함수 들 은 날짜 연산 을 실행 합 니 다.date 는 시작 시간 을 지정 하 는 DATETIME 또는 DATE 값 입 니 다.expr 는 시작 날짜 부터 추가 하거나 빼 는 시간 간격 을 지정 하 는 표현 식 입 니 다.  Expr 는 문자열 입 니 다.마이너스 의 시간 간격 에 대해 서 는'-'로 시작 할 수 있다.type 은 키워드 로 표현 식 이 해 석 된 방식 을 표시 합 니 다. 
    키워드 INTERVA 및 type 분류 부 호 는 대소 문 자 를 구분 하지 않 습 니 다.
    다음 표 는 type 과 expr 매개 변수의 관 계 를 보 여 줍 니 다.
    type 값
    예상 expr 형식
    MICROSECOND
    MICROSECONDS
    SECOND
    SECONDS
    MINUTE
    MINUTES
    HOUR
    HOURS
    DAY
    DAYS
    WEEK
    WEEKS
    MONTH
    MONTHS
    QUARTER
    QUARTERS
    YEAR
    YEARS
    SECOND_MICROSECOND
    'SECONDS.MICROSECONDS'
    MINUTE_MICROSECOND
    'MINUTES.MICROSECONDS'
    MINUTE_SECOND
    'MINUTES:SECONDS'
    HOUR_MICROSECOND
    'HOURS.MICROSECONDS'
    HOUR_SECOND
    'HOURS:MINUTES:SECONDS'
    HOUR_MINUTE
    'HOURS:MINUTES'
    DAY_MICROSECOND
    'DAYS.MICROSECONDS'
    DAY_SECOND
    'DAYS HOURS:MINUTES:SECONDS'
    DAY_MINUTE
    'DAYS HOURS:MINUTES'
    DAY_HOUR
    'DAYS HOURS'
    YEAR_MONTH
    'YEARS-MONTHS'
    MySQL 은 expr 형식의 구두점 구분 자 를 허용 합 니 다.표 에 표 시 된 것 은 건의 하 는 구분자 입 니 다.만약 date 인자 가 DATE 값 이 라면,당신 의 계산 은 YEAR,MONTH,DAY 부분(즉,시간 부분 이 없 음)만 포함 되 고,그 결 과 는 DATE 값 입 니 다.그렇지 않 으 면 결 과 는 DATETIME 값 이 될 것 이다.
    다른 쪽 에 있 는 표현 식 이 날짜 나 날짜 시간 값 이 라면 INTERVAL expr type 은+연산 자의 양 끝 에 만 사용 할 수 있 습 니 다.C 연산 자 에 대해,  INTERVAL expr type 은 오른쪽 끝 에 만 사용 할 수 있 습 니 다.한 시간 간격 에서 날짜 나 날짜 시간 값 을 추출 하 는 것 은 무의미 하기 때 문 입 니 다.(아래 의 예 를 보십시오.
    mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;
            -> '1998-01-01 00:00:00'
    mysql> SELECT INTERVAL 1 DAY + '1997-12-31';
            -> '1998-01-01'
    mysql> SELECT '1998-01-01' - INTERVAL 1 SECOND;
            -> '1997-12-31 23:59:59'
    mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
        ->                 INTERVAL 1 SECOND);
            -> '1998-01-01 00:00:00'
    mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
        ->                 INTERVAL 1 DAY);
            -> '1998-01-01 23:59:59'
    mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
        ->                 INTERVAL '1:1' MINUTE_SECOND);
            -> '1998-01-01 00:01:00'
    mysql> SELECT DATE_SUB('1998-01-01 00:00:00',
        ->                 INTERVAL '1 1:1:1' DAY_SECOND);
            -> '1997-12-30 22:58:59'
    mysql> SELECT DATE_ADD('1998-01-01 00:00:00',
        ->                 INTERVAL '-1 10' DAY_HOUR);
            -> '1997-12-30 14:00:00'
    mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
            -> '1997-12-02'
    mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
        ->            INTERVAL '1.999999' SECOND_MICROSECOND);
            -> '1993-01-01 00:00:01.000001'
    만약 당신 이 너무 짧 은 시간 간격 값(type 키워드 가 예상 하 는 모든 시간 간격 부분 을 포함 하지 않 음)을 지정 했다 면,MySQL 은 시간 간격 값 의 가장 왼쪽 부분 을 절약 했다 고 가정 합 니 다.예 를 들 어,당신 은 일종 의 DAY 를 지정 하 였 습 니 다.SECOND,expr 의 값 은 하늘,시간,분,초 부분 이 있어 야 합 니 다.'1:10'과 유사 한 값 을 지정 하면 MySQL 은 날짜 와 시간 부분 이 존재 하지 않 는 다 고 가정 하면 이 값 은 분 과 초 를 대표 합 니 다.다시 말 하면'1:10'DAYSECOND 는'1:10'에 해당 하 는 MINUTE 로 해 석 됩 니 다.SECOND。이 는 마 이 SQL 이 TIME 값 을 일시에 해석 하 는 방식 이 아니 라 소요 되 는 시간 으로 해석 한 셈 이다.             
    만약 당신 이 날짜 값 에 시간 부분 을 포함 하 는 내용 을 추가 하거나 빼 면 결 과 는 자동 으로 날짜 시간 값 으로 전 환 됩 니 다.
    mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);
            -> '1999-01-02'
    mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
            -> '1999-01-01 01:00:00'
    형식 이 심각하게 잘못된 날 짜 를 사용 했다 면 결 과 는 NULL 입 니 다.하면,만약,만약...  MONTH、YEAR_MONTH 또는 YEAR,결과 날짜 중 하루 의 날짜 가 추 가 된 달의 날짜 보다 많 으 면 이 날 짜 는 자동 으로 추 가 된 달의 최대 날짜 로 조 정 됩 니 다.
    mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);
            -> '1998-02-28'
  • DATE_FORMAT(date,format)
  • format 문자열 에 따라 date 값 의 형식 을 설정 합 니 다.
    다음 설명 자 는 format 문자열 에 사용 할 수 있 습 니 다.
    설명자
    설명 하 다.
    %a
    근무일 의 줄 임 말 이름  (Sun..Sat)
    %b
    달의 줄 임 말 이름  (Jan..Dec)
    %c
    월,숫자 형식(0.12)
    %D
    영어 접미사 가 있 는 이 달 날짜  (0th, 1st, 2nd, 3rd, ...)
    %d
    이 달 날짜,숫자 형식(00..31)
    %e
    이 달 날짜,숫자 형식(0..31)
    %f
    마이크로 초(000000.99999)
    %H
    시간(00.23)
    %h
    시간(01.12)
    %I
    시간(01.12)
    %i
    분,숫자 형식(00.59)
    %j
    연중 일수(001.366)
    %k
    시간(0.23)
    %l
    시간(1.912)
    %M
    월 이름(January.December)
    %m
    월,숫자 형식(00.12)
    %p
    오전(AM)또는 오후(PM)
    %r
    시간,12 시간 제(시간 hh:분 mm:초 ss 후 AM 또는 PM 추가)
    %S
    초(00.59)
    %s
    초(00.59)
    %T
    시간,24 시간 제(시간 hh:분 mm:초 ss)
    %U
    주(00.53),그 중 일요일 은 매주 첫날 이다.
    %u
    주(00.53),그 중 월요일 은 매주 첫날 이다. 
    %V
    주(01.53),그 중에서 일요일 은 매주 첫날 이다.%X 와 함께 사용
    %v
    주(01.53),그 중 월요일 은 매주 첫날 이다.%x 와 동시에 사용
    %W
    워킹 데 이 이름(일요일..토요일)
    %w
    일주일 중 매일(0=일요일.6=토요일)
    %X
    이번 주의 연도,그 중에서 일요일 은 매주 첫날 이 고 숫자 형식,네 자리 이다.%V 와 동시에 사용
    %x
    이번 주 연도 중 월요일 은 매주 첫날,숫자 형식,네 자리 수 입 니 다.%v 와 동시에 사용
    %Y
    연도,숫자 형식,네 자리 수
    %y
    연도,숫자 형식(2 자리)
    %%
    '%'문자
    모든 다른 문 자 는 결과 에 복사 되 어 설명 할 필요 가 없습니다.
    '%'문 자 는 형식 지정 자 이전에 요구 합 니 다.
    달 과 날짜 설명자 의 범 위 는 0 에서 시작 되 는데 그 이 유 는 MySQL 이'2004-00-00'과 같은 불완전한 날 짜 를 저장 할 수 있 기 때문이다.
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
            -> 'Saturday October 1997'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
            -> '22:23:00'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                              '%D %y %a %d %m %b %j');
            -> '4th 97 Sat 04 10 Oct 277'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                              '%H %k %I %r %T %S %w');
            -> '22 22 10 10:23:00 PM 22:23:00 00 6'
    mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
            -> '1998 52'
    (4567913)(4567913)(4567913)(4567913)

    좋은 웹페이지 즐겨찾기