테스트 사이트 - 개발 중인 베타 버전입니다

배너 노출 관련 쿼리

· 2년 전 · 1171 · 4

배너 제작중 짠 쿼리입니다.

 

배너 테이블의 컬럼

 

 

start_date  (varchar(10))  노출 시작 날짜   ex) 2022-03-01

start_hour  (varchar(2))  노출 시작  시   ex)  12  (1자리인 경우 앞에 0을 붙여 저장 )

start_min  (varchar(2))  노출 시작  분   ex)  05  (1자리인 경우 앞에 0을 붙여 저장 )

 

end_date (varchar(8))  노출 종료 날짜   ex) 2022-03-07

end_hour (varchar(2))  노출 종료 시   ex)  03  (1자리인 경우 앞에 0을 붙여 저장 )

end_min (varchar(2))  노출 종료 분   ex)  07  (1자리인 경우 앞에 0을 붙여 저장 )

 

 

쿼리 ==>

  SELECT * FROM  g5_app_banner  

  where   (   DATE_FORMAT( now()  , '%Y%m%d%H%i')     between  

  CONCAT( CONCAT( REGEXP_REPLACE(start_date , '[^[:alnum:][:space:]]+', '') , '' , start_hour ) , '' , start_min )  

     and   CONCAT( CONCAT( REGEXP_REPLACE( end_date , '[^[:alnum:][:space:]]+', '') , '' , end_hour ) , '' , end_min )  

   )   and use_yn = 'Y'    limit 1  

 

 

 

설명

REGEXP_REPLACE(start_date , '[^[:alnum:][:space:]]+', '')  ==>   날짜에 들어간 - 를 제거하고 yyyymmdd

                                                                                   스타일로 만들어 줍니다.

 

concat 날짜를 모두 붙여서   %Y%m%d%H%i 형식으로 만들어 줍니다.

 

 

결과

시작날짜와 노출종료일자인 게시물(배너)만 찾아서 가져옵니다. (맥스1건)

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

2년 전
좋아여ㅛ
2년 전
@주니어개발자25
감사합니다!!
2년 전
감사합니다.
감사합니다.

게시글 목록

번호 제목
18200
18195
18193
18181
18179
18173
18170
18164
18158
18155
18152
18151
18150
18140
18139
18138
18131
18130
18120
18119
18118
18117
18116
18111
18110
18108
18107
18106
18100
18090