SQL 날짜함수
Adddate / subdate : 날짜를 기준으로 ~후, ~전의 날짜
- adddate(날짜, interval 7 day) : 택배에서 많이 사용
- adddate(날짜, interval 1 month)
- adddate(날짜, interval 2 year)
- interval 뒤쪽의 값 = year, month, day, hour, minute, second
curdate() : 오늘 날짜 / curtime() : 오늘 시간
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2023-03-27 |
+------------+
1 row in set (0.00 sec)
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 12:36:33 |
+-----------+
1 row in set (0.00 sec)
now() / sysdate() : 오늘 날짜 시간
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2023-03-27 12:36:39 |
+---------------------+
1 row in set (0.00 sec)
mysql> select sysdate();
+---------------------+
| sysdate() |
+---------------------+
| 2023-03-27 12:36:46 |
+---------------------+
1 row in set (0.00 sec)
addtime / subtime : 시간을 더하고 뺀 결과
- addtime('날짜/시간', '시:분:초' )
mysql> select addtime(now(),'1:0:0');
+------------------------+
| addtime(now(),'1:0:0') |
+------------------------+
| 2023-03-27 13:39:32 |
+------------------------+
1 row in set (0.00 sec)
year(날짜시간) : 년 추출 , month(날짜시간) : 월 추출, day(날짜시간) : 일 추출
hour(날짜시간) : 시간 추출, minute(날짜시간) : 분 추출, second(날짜시간) : 초 추출
date(날짜시간) : 날짜 추출 / time(날짜시간) : 시간 추출
mysql> select time(now());
+-------------+
| time(now()) |
+-------------+
| 12:43:27 |
+-------------+
1 row in set (0.00 sec)
datediff(날짜1, 날짜2) / timediff(시간 또는 날짜/시간, 날짜) : 남은 날짜, 시간 반환
- 디데이에 많이 활용
- 날짜2에서 날짜1까지 남은 날짜/시간 반환
mysql> select datediff('2023-08-07',now());
+------------------------------+
| datediff('2023-08-07',now()) |
+------------------------------+
| 133 |
+------------------------------+
1 row in set (0.00 sec)
dayofweek (날짜) : 요일 (일=1, 월=2..)
mysql> select dayofweek(now());
+------------------+
| dayofweek(now()) |
+------------------+
| 2 |
+------------------+
1 row in set (0.00 sec)
monthname(날짜): 월의 영어이름 출력
dayofyear(날짜): 1년중 며칠이 경과 했는지 반환
last_day(날짜): 말일 반환
time_to_sec(시간): 시간을 초단위로 반환
date_format(날짜, '%y-%m') : 년-월 만 추출
- y는 년이 2자리로 표기, Y의 경우 년이 4자리로 표기
mysql> select date_format(register_data,'%Y-%m') as '날짜', sum(sale_amount) as '월별 판매량 합계'
-> from product
-> group by date_format(register_data,'%Y-%m')
-> order by date_format(register_data,'%Y-%m');
+---------+------------------+
| 날짜 | 월별 판매량 합계 |
+---------+------------------+
| 2020-09 | 306 |
| 2020-10 | 130 |
| 2020-11 | 209 |
+---------+------------------+
3 rows in set (0.00 sec)
'DB > 명령프롬프트 - mysql' 카테고리의 다른 글
[MySQL] ERD 수강관리 프로그램 1. 생성 (속성) (0) | 2023.03.28 |
---|---|
[MySQL] SQL 내장함수 : 문자열 함수 (0) | 2023.03.28 |
[MySQL] SQL 내장함수 : 숫자함수 (0) | 2023.03.27 |
[MySQL] 트랜잭션 (transaction) 생성 (0) | 2023.03.27 |
[MySQL] 타 테이블의 값을 현재 테이블에 삽입하기 (0) | 2023.03.27 |