SELECT
NOW() as 'now날짜시간'
,DATE_FORMAT(NOW(),'%Y%m%d') as 'yyyymmdd'
,DATE_FORMAT(NOW(),'%H%i%s') as 'hh24miss'
,DATE_FORMAT(NOW(),'%p %h:%i:%s') as 'AM/PM hh:mi:ss'
,CURRENT_TIMESTAMP as 'C_T날짜시간'
,DATE_FORMAT(CURRENT_TIMESTAMP,'%Y%m%d') as 'C_Tyyyymmdd'
,DATE_FORMAT(CURRENT_TIMESTAMP,'%H%i%s') as 'C_Thh24miss'
,DATE_FORMAT(CURRENT_TIMESTAMP,'%p %h:%i:%s') as 'C_TAM/PM hh:mi:ss'
,LOCALTIME, LOCALTIME(),SYSDATE()
1. 비효율적인 쿼리
SELECT * FROM tableName WHERE DATE_FORMAT(column_date,'%Y-%m-%d') BETWEEN '2016-06-18' AND '2016-06-19';
2. 효율적인 쿼리
SELECT * FROM tableName WHERE column_date BETWEEN DATE_FORMAT('20160618','%Y%m%d') AND DATE_FORMAT('20160619','%Y%m%d');
이유
비효율적인 쿼리는 데이터 건수만큼 date_format 함수로 변경을 하고 조회를 하게 되어, 바람직하지 않습니다.
효율적인 쿼리는 between 부분에 date_format을 사용한다면 2개의 문자열만 변환을 거치게 됨으로 효율적이게 됩니다.