select date_format(DATE_ADD(now(), INTERVAL+2 MONTH), '%Y%m%d')
- > 현재시간에서 2달후 날짜구하기

select TO_DAYS('2004-03-08')-TO_DAYS(now());
- > 몇일 남았는지

select TO_DAYS(now())-TO_DAYS('2001-03-08');
-> 몇일 지났는지

'DataBase > Mysql' 카테고리의 다른 글

문자열필드를 숫자로 형변환  (0) 2022.12.27
INSERT INTO SELECT 테이블 복사  (0) 2022.12.27
TRUNCATE / OPTIMIZE TABLE 명령어  (0) 2022.12.27
MySQL 내장 함수 정리  (0) 2022.12.26
DATEDIFF 함수  (0) 2022.12.26

TRUNCATE TABLE [테이블명] 명령
TRUNCATE는 테이블을 DROP했다 스키마에 맞게 다시생성 하는 명령어 입니다

OPTIMIZE TABLE [테이블명] 명령
myisam 에서는 레코드를 delete 하면 실제로 데이타를 삭제하는것이 아니라, 레코드의 flag 만 delete 되었다는걸로 바꿉니다.
즉 실제로 데이터는 그대로 남아있습니다.
근데 이런경우 시간이 지나서 delete 가 상당히 많이 되어있는 상태라면, 안쓰는 데이터들로 인해서 db 효율이 떨이집니다.
optimize 는 이런 delete 된 데이터들을 완전히 삭제하고, 테이블에 대한 조각모음을 한다고 생각하시면 됩니다.
(delete 된 블럭들이 완전히 삭제되니, optimize 후에는 테이블 사이즈가 줄겠죠.)
optimize 실행 주기는 뭐 디비 상태에 따라 다르겠죠. 주기적으로 테이블 상태를 확인해서 좀 오래되었다 싶으면 돌려주셔도 상관없을듯.
(사실 주기에 대한건 구체적인 답이 있을수 없습니다. 계속 모니터링 하시면서 직접 결정하셔야 할 문제지요.)

'DataBase > Mysql' 카테고리의 다른 글

INSERT INTO SELECT 테이블 복사  (0) 2022.12.27
날짜함수  (0) 2022.12.27
MySQL 내장 함수 정리  (0) 2022.12.26
DATEDIFF 함수  (0) 2022.12.26
FIND_IN_SET 함수  (0) 2022.12.26

1. 숫자 관련 함수
 - ABS(숫자) - 절대값 출력.
 - CEILING(숫자) - 값보다 큰 정수 중 가장 작은 수.
 - FLOOR(숫자) - 값보다 작은 정수 중 가장 큰 수[실수를 무조건 버림(음수일 경우는 제외)].
 - ROUND(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 반올림.(자릿수는 양수,0,음수를 갖을 수 있다.)
 - TRUNCATE(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 버림.
 - POW(X,Y) or POWER(X,Y) - X의 Y승
 - MOD (분자, 분모) - 분자를 분모로 나눈 나머지를 구한다.(연산자 %와 같음)
 - GREATEST(숫자1,숫자2,숫자3...) - 주어진 수 중 제일 큰 수 리턴.
 - LEAST(숫자1,숫자2,숫자3...) - 주어진 수 중 제일 작은 수 리턴.
 - INTERVAL(a,b,c,d.....) - a(숫자)의 위치 반환

2. 문자 관련 함수
 - ASCII(문자) - 문자의 아스키 코드값 리턴.
 - CONCAT('문자열1','문자열2','문자열3'...) - 문자열들을 이어준다.
 - INSERT('문자열','시작위치','길이','새로운문자열') - 문자열의 시작위치부터 길이만큼 새로운 문자열로 대치
 - REPLACE('문자열','기존문자열','바뀔문자열') - 문자열 중 기존문자열을 바뀔 문자열로 바꾼다.
 - INSTR('문자열','찾는문자열') - 문자열 중 찾는 문자열의 위치값을 출력
 - LEFT('문자열',개수) - 문자열 중 왼쪽에서 개수만큼을 추출.
 - RIGHT('문자열',개수) - 문자열 중 오른쪽에서 개수만큼을 추출.
 - MID('문자열',시작위치,개수) - 문자열 중 시작위치부터 개수만큼 출력
 - SUBSTRING('문자열',시작위치,개수) - 문자열 중 시작위치부터 개수만큼 출력
 - LTRIM('문자열') - 문자열 중 왼쪽의 공백을 없앤다.
 - RTRIM('문자열') - 문자열 중 오른쪽의 공백을 없앤다.
 - TRIM('문자열') - 양쪽 모두의 공백을 없앤다.
 - LCASE('문자열') or LOWER('문자열') - 소문자로 바꾼다.
 - UCASE('문자열') or UPPER('문자열') - 대문자로 바꾼다.
 - REVERSE('문자열') - 문자열을 반대로 나열한다.

3. 논리 관련 함수
 - IF(논리식,참일 때 값,거짓일 때 값) - 논리식이 참이면 참일 때 값을 출력하고 논리식이 거짓이면 거짓일 때 출력한다.
 - IFNULL(값1,값2) - 값1이 NULL 이면 값2로 대치하고 그렇지 않으면 값1을 출력

4. 집계 함수
 - COUNT(필드명) - NULL 값이 아닌 레코드 수를 구한다.
 - SUM(필드명) - 필드명의 합계를 구한다.
 - AVG(필드명) - 각각의 그룹 안에서 필드명의 평균값을 구한다.
 - MAX(필드명) - 최대값을 구한다.
 - MIN(필드명) - 최소값을 구한다.

5. 날짜 관련 함수
 - NOW() or SYSDATE() or CURRENT_TIMESTAMP() - 현재 날짜와 시간 출력
 - CURDATE() or CURRENT_DATE() -현재 날짜 출력
 - CURTIME() or CURRENT_TIME() -현재 시간 출력
 - DATE_ADD(날짜,INTERVAL 기준값) -날짜에서 기준값 만큼 더한다.
  (기준값 : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)
 - DATE_SUB(날짜,INTERVAL 기준값) -날짜에서 기준값 만큼 뺸다.
  (기준값 : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)
 - YEAR(날짜) -날짜의 연도 출력.
 - MONTH(날짜) -날짜의 월 출력.
 - MONTHNAME(날짜) -날짜의 월을 영어로 출력.
 - DAYNAME(날짜) -날짜의 요일일 영어로 출력.
 - DAYOFMONTH(날짜) -날짜의 월별 일자 출력.
 - DAYOFWEEK(날짜) -날짜의 주별 일자 출력(월요일(0),화요일(1)...일요일(6))
 - WEEKDAY(날짜) -날짜의 주별 일자 출력(월요일(0),화요일(1)...일요일(6))
 - DAYOFYEAR(날짜) -일년을 기준으로 한 날짜까지의 날 수.
 - WEEK(날짜) -일년 중 몇 번쨰 주.
 - FROM_DAYS(날 수) --00년 00월 00일부터 날 수 만큼 경과한 날의 날짜 출력.
 - TO_DAYS(날짜) --00 년 00 월 00일 부터 날짜까지의 일자 수 출력.
 - DATE_FORMAT(날짜,'형식') : 날짜를 형식에 맞게 출력

'DataBase > Mysql' 카테고리의 다른 글

INSERT INTO SELECT 테이블 복사  (0) 2022.12.27
날짜함수  (0) 2022.12.27
TRUNCATE / OPTIMIZE TABLE 명령어  (0) 2022.12.27
DATEDIFF 함수  (0) 2022.12.26
FIND_IN_SET 함수  (0) 2022.12.26

DATEDIFF함수

- 날짜의 차이를 계산하기 위해 사용

- 구문은 DATEDIFF(date1, date2)

- 즉, date1의 값에서 date2의 값을 뺀 날짜의 값을 반환하여 결과를 보여준다.

ex) SELECT DATEDIFF('2017-03-03 23:59:59", "2017-02-28"); //결과는 3

SELECT TIMESTAMPDIFF(HOUR, now(), DATE_ADD(now(),INTERVAL 1 HOUR)) dd ==> 1시간
SELECT TIMESTAMPDIFF(MINUTE, now(), DATE_ADD(now(),INTERVAL 1 HOUR)) dd ==> 60분
SELECT TIMESTAMPDIFF(SECOND, now(), DATE_ADD(now(),INTERVAL 1 HOUR)) dd ==> 3600초

'DataBase > Mysql' 카테고리의 다른 글

INSERT INTO SELECT 테이블 복사  (0) 2022.12.27
날짜함수  (0) 2022.12.27
TRUNCATE / OPTIMIZE TABLE 명령어  (0) 2022.12.27
MySQL 내장 함수 정리  (0) 2022.12.26
FIND_IN_SET 함수  (0) 2022.12.26

PHP의 in_array()와 array_search()와 비슷한 기능의 함수.

* table1의 col1 컬럼값이 1,2,3,4,5 가 입력되어 있을경우
col1에 3값이 있는 레코드 반환하고 싶으면 아래과 같이 쿼리를 질의하면 됨


select * from table1 where find_in_set(3, col1);

'DataBase > Mysql' 카테고리의 다른 글

INSERT INTO SELECT 테이블 복사  (0) 2022.12.27
날짜함수  (0) 2022.12.27
TRUNCATE / OPTIMIZE TABLE 명령어  (0) 2022.12.27
MySQL 내장 함수 정리  (0) 2022.12.26
DATEDIFF 함수  (0) 2022.12.26

+ Recent posts