[mariadb] 정각 데이터만 추출하기 0 3 1,915

by tosswin [SQL Query] mariadb 정각 [2023.10.24 17:55:18]


지금 구현하고 싶은 query는

15분 간격으로 얻어오는 데이터 테이블이 있습니다.

이 중 00분 00초 의 데이터만 조회하고 싶은데,

원하는 대로 되지 않아 이렇게 조언을 구합니다.

 

예제 테이블은 아래와 같습니다.

mesdatetime value1 value2
2023-10-23 23:30:00 63.8 111.7
2023-10-23 23:45:00 70.9 89.0
2023-10-24 00:00:00 150.1 270.5
2023-10-24 00:15:00 141.7 97.2
2023-10-24 00:30:00 27.0 158.8
2023-10-24 00:45:00 40.7 144.5
2023-10-24 01:00:00 102.8 107.6
2023-10-24 01:15:00 74.3 100.6
2023-10-24 01:30:00 118.2 225.6
2023-10-24 01:45:00 51.4 213.6
2023-10-24 02:00:00 147.0 1.1
2023-10-24 02:15:00 78.7 265.7
2023-10-24 02:30:00 119.5 44.4
2023-10-24 02:45:00 14.6 208.5
2023-10-24 03:00:00 48.4 262.4
2023-10-24 03:15:00 123.6 127.9
2023-10-24 03:30:00 45.1 66.2
2023-10-24 03:45:00 11.1 105.3
2023-10-24 04:00:00 37.8 125.0
2023-10-24 04:15:00 83.6 227.0
2023-10-24 04:30:00 139.7 112.1
2023-10-24 04:45:00 13.8 65.6
2023-10-24 05:00:00 57.7 264.7
2023-10-24 05:15:00 78.2 220.5
2023-10-24 05:30:00 37.6 23.1

 

위의 테이블을 아래와 같이 조회하고 싶습니다.

mesdatetime value1 value2
2023-10-24 00:00:00 150.1 270.5
2023-10-24 01:00:00 102.8 107.6
2023-10-24 02:00:00 147.0 1.1
2023-10-24 03:00:00 48.4 262.4
2023-10-24 04:00:00 37.8 125.0
2023-10-24 05:00:00 57.7 264.7

 

조언 부탁드립니다.

감사합니다.

by pajama [2023.10.24 23:38:20]

바로 떠오른건 이 방식입니다.

select * from table
where mesdatetime = DATE_FORMAT(mesdatetime, '%Y-%m-%d %H:00:00')

 


by 마농 [2023.10.25 09:29:43]
-- 1. mesdatetime 컬럼의 자료형이 문자형인 경우 --
SELECT *
  FROM t
 WHERE mesdatetime LIKE '%00:00'
-- WHERE RIGHT(mesdatetime, 5) = '00:00'
-- WHERE SUBSTR(mesdatetime, -5) = '00:00'
;


-- 2. mesdatetime 컬럼의 자료형이 날짜형인 경우 --
SELECT *
  FROM t
 WHERE DATE_FORMAT(mesdatetime, '%i:%s') = '00:00'
-- WHERE MINUTE(mesdatetime) = 0
;

 


by tosswin [2023.10.25 16:54:27]

작성해주신 것을 보면, 이렇게 간단히... 라는 생각을 많이 하게 되네요..

이번에도 진도가 나갈 수 있도록 도와주셔서 감사합니다.

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