각종 메크로를 만들다보면 채팅 또는 게시판 글, 댓글이 같은 시간에 입력이 되어 티가 나는 경우가 있다. 그럴때 실제 유저가 한거 처럼 시간을 정해서 처리할 수 있는데
현재의 경우는 특정 게시글, 또는 댓글에 좋아요 를 메크로로 작동하기 에서
메크로 작동시간을 게시글 또는 댓글이 게시된 시간 이후로 현재 시간까지의 시간중 랜덤으로 시간을 랜덤으로 추출하는 쿼리이다.
SELECT 절에 서 서브 쿼리로 추출하기.
SELECT
COL1,
COL2,
COL3,
.
.
.
,(SELECT DATE_SUB(NOW(), INTERVAL FLOOR( 1 + RAND() * (TIME_TO_SEC(TIMEDIFF( NOW(), (SELECT C.CMT_CREATE_DT FROM CMT_COMMENT C WHERE C.CMT_COMMENT_SEQ = ${cmt_seq} << 특정시간 ))) -1 ) ) SECOND) FROM DUAL)
최대한 보기 좋게 썼는데도 가독성이 너무 떨어진다..
빨간색이 특정 게시물 시간 과 현재시간의 차이를 초로 환산한거다.
즉 값 빨간색 쿼리의 값이 3600 이나왔다고 가정하면
,(SELECT DATE_SUB(NOW(), INTERVAL FLOOR( 1 + RAND() * (3600 -1 ) ) SECOND) FROM DUAL)
이제 부터 좀 쉬어보이는듯
범위 랜덤 을 구하려면
(최소값 + RAND() * (최대값 - 최소값)) 이므로
1초부터 3600초 사이를 랜덤하게 뽑은후
FLOOR로 정수화 시킨담에
DATE_SUB(NOW, INTERVAL 값 SECOND) 를 통해 이전시간을 구한다. SECOND 대신
HOUR DATE 등 사용이 가능할꺼다.
정리하면
현재 시간 - ( (현재 시간 - 특정 게시물 작성시간) >> 랜덤 추출 )
더이상의 자세한 설명은 생략한다.
피드 구독하기:
댓글 (Atom)
[oracle]백업및 복구
[oracle]백업및 복구 오라클 덤프 백업및 복구 윈도우 서버 기반 간단 정리 --디렉터리 조회 sqlplus 또는 dbtool 입력시작 SELECT * FROM DBA_DIRECTORIES ; --D:...
-
수십대의 서버에 특정 쉘을 실행한다거나 파일을 수정해야할경우 호스트 입력 아이디 입력 패스워드 입력은 여간 짜증나는일이 아닐수 없다. 이를 한방에 해주는 방법 teraterm 를 설치한다( putty 는 버리자 ) 예를 들면 19...
-
pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId...
-
notice_state 란 이름의 체크박스가 있다 가정하고 $("input[name=notice_state]").bind("click",false); 끝.
댓글 없음:
댓글 쓰기