이전 목록 다음
채택완료

mysql 날짜 조회 쿼리 질문

2019-03-13 (수) 10:24:45 3,729

==== bk_time ==== 
2018-03-15 05:29:16 
2019-04-04 14:27:29 
2019-03-15 01:34:16 
================ 

데이터가 이렇게있으면 
현재 년도(2019) 데이터 이상인것만 가져올려고하는데 
쿼리가 잘못됬나요? 

SELECT * 
FROM table_name 
WHERE DATE_FORMAT(bk_time, '%Y') <= date_format(curdate(), '%Y')

where DATE_FORMAT(bk_time, '%Y') <= 2019

인데 

2019년이랑 같거나 큰거 가져오라는거 아닌가요?

|

답변 3개

채택된 답변
+20 포인트

2019만 입력하면 숫자로만 인식합니다 날짜타입인줄 몰라요

SELECT * FROM table_name  WHERE date(bk_time) >= date('2019-01-01')

2019년 01월 01일 이후 날짜(2019~)를 검색하실려면 이런식으로하거나

날짜 범위안에서 검색하실려면

between date('시작날짜') and date('끝날짜')

이런식으로 검색해주시면됩니다

2019-03-13 (수) 12:45:16

SELECT * FROM #table WHERE DATE_FORMAT(bk_time, '%Y') >= DATE_FORMAT(CURDATE(), '%Y')

부등호 방향이 반대가 아닐까 싶습니다.

2019-03-13 (수) 11:31:32

SELECT * 
FROM table_name 
WHERE suibstring(bk_time,1,4 ) <= ".date('Y')."

이렇게 하면 되지 않을까요?

bk_time 필드 앞자리 4자리가 2019 보다 작거나 같은 걸 쿼리하는 문구입니다.

답변을 작성하려면 로그인이 필요합니다.