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개의 문자열만 변환을 거치게 됨으로 효율적이게 됩니다.


+ Recent posts