쿼리 도움 부탁드립니다. 0 6 765

by 잼따군 [MySQL] [2017.12.08 11:37:50]


DB는 MYSQL이고요.

 

현재 시간에서 부터 1시간 전/ 30분전 부터 5분간격의 시간 데이터를 뽑아야합니다.

 

현재 시간  2017-12-08 11:35

 

요구되는 결과.

2017-12-08 10:35

2017-12-08 10:40

2017-12-08 10:45

...

2017-12-08 11:35

 

이게 단순하게 느껴졌는데 current_timestamp이용해서 뽑으려니까 쉽지가 않네요..;;

 

도움좀 부탁드리겠습니다.

by 고수가되고싶어요 [2017.12.08 12:45:46]
WITH t AS (
SELECT SYSDATE dt FROM dual 
)

SELECT dt-65/60/24 +(level*5/60/24) 
FROM t 
 CONNECT BY LEVEL <=13

오라클인데 mysql도대는지 몰겟네여 ㅕ ㅠ

 

 

2017-12-08 오전 11:45:15
2017-12-08 오전 11:50:15
2017-12-08 오전 11:55:15
2017-12-08 오후 12:00:15
2017-12-08 오후 12:05:15
2017-12-08 오후 12:10:15
2017-12-08 오후 12:15:15
2017-12-08 오후 12:20:15
2017-12-08 오후 12:25:15
2017-12-08 오후 12:30:15
2017-12-08 오후 12:35:15
2017-12-08 오후 12:40:15
2017-12-08 오후 12:45:15


by 주킹 [2017.12.08 13:02:12]

mysql은 connect by level은 안됩니다 ㅋ


by 마농 [2017.12.08 13:09:32]

현재 시간이 11:35 일때 10:35 에 시작하고 있는데?
현재 시간이 11:36 이면 10:36 에 시작하나요?


by 잼따군 [2017.12.08 16:36:53]

그렇게 나와야 해요


by 마농 [2017.12.08 17:30:04]
SELECT DATE_FORMAT(
       base_dt + INTERVAL (lv - 1) * 5 MINUTE
       , '%Y-%m-%d %H:%i') dt
  FROM (SELECT NOW() - INTERVAL 1 HOUR AS base_dt) base_t
 CROSS JOIN
       (SELECT ordinal_position lv
          FROM information_schema.columns
         WHERE table_schema = 'information_schema'
           AND table_name = 'COLUMNS'
           AND ordinal_position <= 13
        ) copy_t
;

 


by 잼따군 [2017.12.08 19:03:27]

아 감사합니다.. 더미 뷰하나 만들어놓고 쓰면 되겠네요.. 감사합니다~~~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입