Database/MySQL

[MySQL] 문자열 함수 / 숫자 함수 / 날짜, 시간 함수

루루23 2024. 10. 10. 14:14
반응형

String Functions

# name 컬럼에서 'a'가 들어간 위치 반환
SELECT name, LOCATE("a", name) FROM mytable;

# name 컬럼에서 5번째 문자부터 반환, 입력한 숫자가 문자열의 길이보다 크면 반환하지 않음
SELECT name, SUBSTRING(name, 5) FROM mytable;

# 문자열의 왼쪽, 오른쪽에서 특정 개수만큼 가져오기
SELECT name, LEFT(name, 5), RIGHT(name, 5) FROM mytable;

# 대문자/소문자로 변환
SELECT name, UPPER(name), LOWER(name) FROM mytable;

# 문자열의 길이
SELECT name, LENGTH(name) FROM mytable;

# 문자열 합치기
SELECT name, CONCAT(LEFT(name, 1), RIGHT(name, 1)) AS first_last FROM mytable;

# 문자 바꾸기
SELECT name, REPLACE(name, 'a', 'i') FROM mytable;

 

Numeric Functions

# 절댓값
SELECT ABS(strength - durability) FROM myhero;

# 정수로 올림하거나 버림
SELECT CEILING(AVG(strength)), FLOOR(AVG(strength)) FROM myhero;

# 소수점 자릿수까지 반올림 혹은 버림
SELECT ROUND(AVG(power), 3), TRUNCATE(AVG(power), 3) FROM myhero;

# 숫자만큼 제곱
SELECT POWER(strength, 2)FROM myhero;

# 2로 나눈 나머지 반환
SELECT MOD(durability, 2) FROM myhero;

 

 

Date and Time Functions

# 현재 날짜와 시간, 현재 날짜, 현재 시간
SELECT NOW(), CURRENT_DATE(), CURRENT_TIME();

# 날짜의 연도, 월, 월의 영어이름
SELECT ts, YEAR(ts), MONTH(ts), MONTHNAME(ts) FROM mytable;

# 요일이름, 일, 요일숫자, 해당 연도의 몇번째 주인지
# 요일 숫자의 경우 일요일이 1로 시작함
SELECT ts, DAYNAME(ts), DAYOFMONTH(ts), DAYOFWEEK(ts), WEEK(ts) FROM mytable; 

# 현재 시간, 시간, 분, 초
SELECT NOW(), HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());

# 날짜의 형식 지정
SELECT DATE_FORMAT('2002-08-18 18:34:22', '%Y년 %m월 %d일 %H시 %i분 %s초') AS formatted_date;

# 두 날짜/시간의 차이(1-2)를 반환
SELECT DATEDIFF(date_1, date_2), TIMEDIFF(time_1, time_2) FROM mytable;

 

DATE_FORMAT Specifiers

 

MySQL :: MySQL 8.4 Reference Manual :: 14.7 Date and Time Functions

14.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 13.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats

dev.mysql.com

 

반응형