MySQL

12. 숫자 함수 & 날짜 시간 함수

newness 2022. 5. 3. 12:00

01. 숫자 함수

 

ABS(숫자): 절대값

SELECT ABS(-120) ;

결과: 120

 

 

CEILING(숫자, 자리수): 올림

FLOOR(숫자, 자리수): 버림

ROUND(숫자, 자리수): 반올림

 - 자리수가 양수일 때, 소수점 O번째를 의미

 - 자리수가 음수일 때, 1의 자리 / 10의 자리 / ... 를 의미

SELECT CEILING(1230, -2) ;

결과: 1300

 - 자리수 '-2' 는 십의자리를 의미함

 - 십의 자리에서 올림하여 1300 출력

 

SELECT FLOOR(1235, -1) ;

결과: 1230

 - 자리수 '-1' 은 일의자리를 의미함

 - 일의 자리에서 버림하여 1230을 출력

 

SELECT ROUND(1234.5678, 3) ;

결과: 1234.57

 - 자리수 3은 소수점 셋째자리를 의미함

 - 셋째자리(7)에서 반올림하여 1234.57을 출력

 

 

MOD(숫자1, 숫자2): 숫자1을 숫자2로 나눈 나머지 값

SELECT  MOD(17, 5) ;
SELECT  17 MOD 5 ;
SELECt  17 % 5 ;

결과: 2

 - 17을 5로 나눈 나머지 출력

 

 

TRUNCATE: 자리수 아래의 숫자를 버림

SELECT  TRUNCATE(1234.5678, 2) ;
SELECT  TRUNCATE(1234.5678, -2) ;

결과1: 1234.56

 - 소수점 둘째자리 미만은 버림

결과2: 1230

 - 정수 둘째자리부터 버림

 

 

 

02. 날짜 및 시간 함수

 

ADDDATE(날짜, 차이) - 날짜를 더함

SUBDATE(날짜, 차이) - 날짜를 뺌

SELECT ADDDATE('2022-01-01', INTERVAL 1 DAY) ;
SELECT SUBDATE( FROM_UNIXTIME(1645106440), INTERVAL 1 MONTH) ;

결과1: 2022-01-02

결과2: 2022-01-17 23:00:40

 

 

ADDTIME(날짜/시간, 시간) - 시간을 더함

SUBTIME(날짜/시간, 시간) - 시간을 뺌

SELECT ADDTIME('2022-01-01 22:00:00', '1:1:1') ;
SELECT SUBTIME('2022-01-01 22:00:00', '1:1:1') ;

결과1: 2022-01-01 23:01:01

결과2: 2022-01-01 20:58:59

 

 

CURDATE(): 현재 연-월-일

CURTIME(): 현재 시:분:초

NOW(): 현재 연-월-일 시:분:초

SYSDATE(): 현재 연-월-일 시:분:초

SELECT CURDATE(), CURTIME(), NOW(), SYSDATE() ;

결과: '2022-05-03' /  '11:28:05' / '2022-05-03 11:28:05' / '2022-05-03 11:28:05'

 

 

DATE(): 날짜만 출력

TIME(): 시간만 출력

SELECT DATE(NOW()), TIME(NOW()) ;
SELECT DATE(FROM_UNIXTIME(1645106440)), TIME(FROM_UNIXTIME(1645106440)) ;

결과1: '2022-05-03' / '11:30:29'

결과2: '2022-02-17' / '23:00:40'

 

 

DATEDIFF(날짜1, 날짜2): 날짜1 - 날짜2의 일수를 결과로 출력함

SELECT DATEDIFF('2022-02-01', '2022-01-01') ;

결과: 31

 

 

TIMEDIFF(시간1, 시간2): 시간1 - 시간2의 시간을 'hh:mm:ss' 형태로 출력함

SELECT TIMEDIFF('10:30:27', '1:10:15') ;
SELECT TIMEDIFF(FROM_UNIXTIME(1645106440), FROM_UNIXTIME(1645006340)) ;

결과1: 09:20:12

결과2: 27:48:20

 

 

시간 형식 전환

FROM_UNIXTIME(): UNIXTIME 값을 YYYY-MM-DD hh:mm:ss 로 변경

UNIX_TIMESTAMP(): YYYY-MM-DD hh:mm:ss 를 UNIXTIME 값으로 변경

SELECT FROM_UNIXTIME(1645106440) ;
SELECT UNIX_TIMESTAMP('2022-02-17 23:00:40') ;

결과1: 2022-02-17 23:00:40

결과2: 1645106440