날짜 관련 함수들
현재 날짜
CURRENT_DATE, CURDATE |
현재 날짜 반환 |
CURRENT_TIME, CURTIME |
현재 시간 반환 |
CURRENT_TIMESTAMP, NOW |
현재 시간과 날짜 반환 |
날짜 생성
DATE |
문자열에 따라 날짜 생성 |
TIME |
문자열에 따라 시간 생성 |
YEAR |
주어진 DATETIME값의 년도 반환 |
MONTHNAME |
주어진 DATETIME값의 월(영문) 반환 |
MONTH |
주어진 DATETIME값의 월 반환 |
WEEKDAY |
주어진 DATETIME값의 요일값 반환(월요일: 0) |
DAYNAME |
주어진 DATETIME값의 요일명 반환 |
DAYOFMONTH, DAY |
주어진 DATETIME값의 날짜(일) 반환 |
SELECT car_id, if(sum(if('2022-10-16' between start_date and end_date, 1, 0))>0,
'대여중', '대여 가능') as AVAILABILITY
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
group by car_id
order by car_id desc
날짜 연산
ADDDATE, DATE_ADD |
시간/날짜 더하기 |
SUBDATE, DATE_SUB |
시간/날짜 빼기 |
날짜 차이
DATE_DIFF |
두 시간/날짜 간 일수차(+1하기) |
SELECT HISTORY_ID, CAR_ID,
DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE,
DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE,
IF(DATEDIFF(END_DATE, START_DATE) + 1 >= 30, '장기 대여','단기 대여') AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATE_FORMAT(START_DATE, '%Y-%m') = '2022-09'
ORDER BY HISTORY_ID DESC;
-- 코드를 입력하세요
SELECT CAR_ID ,ROUND(
AVG(DATEDIFF(END_DATE,START_DATE)+1) ,1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID HAVING AVG(DATEDIFF(END_DATE,START_DATE)+1) >=7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
문자열에서 DATE로 변환
STR _ TO _ DATE(S, F) |
S를 F형식으로 해석하여 시간/날짜 생성 |
시간 관련 함수들
시간 연산자
CURRENT_TIME, CURTIME |
현재 시간 반환 |
HOUR |
주어진 DATETIME의 시 반환 |
MINUTE |
주어진 DATETIME의 분 반환 |
SECOND |
주어진 DATETIME의 초 반환 |
SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN 9 AND 19
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)
%T |
hh:mm:ss |
%r |
hh:mm:ss AM/PM |
%H, %k |
시 (~23) |
%h, %l |
시 (~12) |
%i |
분 |
%S, %s |
초 |
%p |
AM/PM |