728x90
반응형
1. 연도, 월, 일 추출
1) YEAR
SELECT * FROM copang_main.member WHERE YEAR(birthdaty) = '1995';
2) MONTH
SELECT * FROM copang_main.member WHERE MONTH(sign_up_day) IN (7,8,9);
3) DAYOFMONTH
SELECT * FROM copang_main.member WHERE DAYOFMONTH(sign_up_day) BETWEEN 15 AND 31; -- 각 달의 후반부
2. 날짜, 시간 추출
1) SYSDATE() - 현재 시스템의 날짜와 시간 동시에 출력
SELECT sysdate() from dual;
2) CURDATE() - 현재 시스템의 날짜만 출력
SELECT curdate() from dual;
3) CURTIME() - 현재 시스템의 시간만 출력
select curtime() from dual;
3. 날짜 간의 차이 구하기
1) DATEDIFF(날짜 a, 날짜 b) = a-b
SELECT email, sign_up_day, DATEDIFF(sign_up_day, '2020-01-01') FROM copang_main.member;
2) DATE_ADD() - 날짜 더하기 / INTERVAL 300 DAY - 300일을 더한 날짜
SELECT sign_up_day, DATE_ADD(sign_up_day, INTERVAL 300 DAY) FROM copang_main.member;
3) DATE_SUB() - 날짜 뺴기
SELECT sign_up_day, DATE_SUB(sign_up_day, INTERVAL 300 DAY) FROM copang_main.member;
4. UNIX_TIMESTAMP
날짜와 시간이 특정 서식에 맞게 적혀있는게 아니라, 1553315220 이런식으로 큰 숫자값이 적혀있는 경우가 있는데, 이런 형식의 날짜시간 값을 UNIX Timestamp라고 한다. 특정 날짜의 특정 시간이 1970년 1월 1일 기준으로 총 몇 초가 지났는지 나타낸 값이다.
SELECT email, sign_up_day, UNIX_TIMESTAMP(sign_up_day) FROM copang_main.member;
사람이 읽을 수 있는 날짜 형태로 바꿔야 하는데, 그럴 때 FROM_UNIXTIME() 함수를 사용한다.
SELECT email, sign_up_day, FROM_UNIXTIME(UNIX_TIMESTAMP(sign_up_day)) FROM copang_main.member;
날짜, 시간 관련 데이터 타입 : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
날짜, 시간 관련 함수 : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
728x90
반응형
'Data > MySQL' 카테고리의 다른 글
[MySQL] Pagination LIMIT (0) | 2020.12.15 |
---|---|
[MySQL] 정렬 - 숫자형/문자열형 구별 (0) | 2020.12.15 |
[MySQL] 대소문자 구별 - BINARY (0) | 2020.12.15 |
[MySQL] 조건 표현식 (0) | 2020.12.15 |
[MySQL] Primary Key (0) | 2020.12.14 |