ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mysql - 시간,날짜 관련 함수(1)
    DataBase/MySql 2023. 9. 25. 10:54
    반응형

    시간,날짜 관련 함수

     

    - 현재 시간, 날짜

    함수 설명
    CURRENT_DATE, CURDATE 현재 날짜 반환
    CURRENT_TIME, CURTIME 현재 시간 반환
    CURRENT_TIMESTAMP, NOW 현재 시간과 날짜 반환
    SELECT CURDATE(), CURTIME(), NOW();


    - 문자열에 따른 날짜,시간

    함수 설명
    DATE 문자열에 따라 날짜 생성
    TIME 문자열에 따라 시간 생성
    SELECT
       '2021-6-1' = '2021-06-01',
       DATE('2021-6-1') = DATE('2021-06-01'),
       '1:2:3' = '01:02:03',
       TIME('1:2:3') = TIME('01:02:03');

    DATE 함수를 사용하는 경우와 하지 않는 경우의 결과값이 다르다.  TIME또한 동일하다.

    해당 함수를 사용하는 경우는 문자열이 들어오면 자동으로 해당 포맷에 맞추어 비교를 하기 때문이다. 

     

    SELECT * FROM Orders
    WHERE OrderDate BETWEEN DATE('1997-1-1') AND DATE('1997-1-31');

    이와같이 특정 기간동안의 데이터 조회를 하는 경우 유용하게 사용된다. 


    - 년,월,일, DateTime

    함수  설명
    YEAR 주어진 DATETIME값의 년도 반환
    MONTHNAME 주어진 DATETIME값의 월(영문) 반환
    MONTH 주어진 DATETIME값의 월 반환
    WEEKDAY 주어진 DATETIME값의 요일 반환(월요일:0)
    DAYNAME 주어진 DATETIME값의 요명 반환
    DAYOFMONTH, DAY 주어진 DATETIME값의 날짜(일) 반환
    SELECT
      OrderDate,
        CONCAT(
          CONCAT_WS(
             '/',
             YEAR(OrderDate), MONTH(OrderDate), DAY(OrderDate)
          ),
         ' ',
         UPPER(LEFT(DAYNAME(OrderDate), 3))
        ) AS DateForm FROM Orders;

     


    - 시, 분, 초

    함수 설명
    HOUR 주어진 DATETIME의 시 반환
    MINUTE 주어진 DATETIME의 분 반환
    SECOND 주어진 DATETIME의 초 반환
    SELECT HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());


    -시간 날짜 더하기, 빼기

    함수 설명
    ADDDATE, DATE_ADD 시간/날짜 더하기
    SUBDATE, DATE_SUB 시간/날짜 빼기
    SELECT
      OrderDate,
      ADDDATE(OrderDate, INTERVAL 1 YEAR),
      ADDDATE(OrderDate, INTERVAL -2 MONTH),
      ADDDATE(OrderDate, INTERVAL 3 WEEK),
      ADDDATE(OrderDate, INTERVAL -4 DAY),
      ADDDATE(OrderDate, INTERVAL -5 MINUTE)
    FROM Orders;

    해당 함수를 사용하기 위한 포맷은 위와 같다. 

     


    - 두 시간/날짜 간 일수 혹은 날짜 차이 

    함수  설명
    DATE_DIFF 두 시간/날짜 간 일수 차
    TIME_DIFF 두 시간/날짜 간 시간 차
    SELECT
       OrderDate,
       NOW(),
       DATEDIFF(OrderDate, NOW())
    FROM Orders;

     

     

    SELECT TIMEDIFF('2021-06-21 15:20:35', '2021-06-21 16:34:41');

     


    - 해당 달의 마지막 날짜 구하기

    함수  설명
    LAST_DAY 해당 달의 마지막 날짜
    SELECT
      OrderDate,
      LAST_DAY(OrderDate),
      DAY(LAST_DAY(OrderDate)),
      DATEDIFF(LAST_DAY(OrderDate),
      OrderDate)
    FROM Orders;

    반응형

    댓글

Designed by Tistory.