select curdate(), #현재 날짜 curtime(), #현재 시간 now(), #현재 날짜와 시간 date('2023-07-04 19:50:26'), #날짜만 time('2023-07-04 19:50:26'), #시간만 year('2023-07-04 19:50:26'), #연도 month('2023-07-04 19:50:26'), #월 day('2023-07-04 19:50:26'), #요일 (1부터 월요일) hour('2023-07-04 19:50:26'), #시 minute('2023-07-04 19:50:26'), #분 second('2023-07-04 19:50:26') #초
*UNION ALL을 사용하여 피벗테이블 형태로 결과 출력
DATE, TIME, DATETIME 데이터 타입은 숫자처럼 보일 수 있지만 실제로는 날짜와 시간을 다루기 위해 특별히 설계된 데이터 타입이다. 날짜와 시간 연산을 위한 특별한 함수와 연산자가 제공된다.
#SUBDATE(date, days) 또는 SUBDATE(date, INTERVAL expr unit) SELECT SUBDATE('2023-07-03', 10) AS result; SELECT SUBDATE('2024-07-05', INTERVAL 3 MONTH) AS result;
DATE_SUB(date, INTERVAL expr unit) SELECT DATE_SUB('2024-07-05', INTERVAL 5 MONTH) AS new_date; #day,week,month,year #microsecond,second,minute,hour
두 함수 모두 동일한 결과를 반환하며, 다양한 인터벌(interval)을 사용하여 일, 주, 월, 연도, 시간, 분, 초 단위로 날짜를 조정할 수 있다.
subdate()를 date_sub()의 별칭으로 본며 MySQL 공식 문서에서도 SUBDATE()와 DATE_SUB()가 동일한 결과를 제공한다고 명시하고 있다. 사용자의 편의를 위해 2가지 함수를 제공한다고 한다.