SELECT * FROM `incomes` WHERE incomeDate BETWEEN '28-12-2016' and '31-01-2017'
작동하지하지만 난 쿼리 이하로 할 때 그것은 결과를 보여SQL이 쿼리가 작동하지 제대로
SELECT * FROM `incomes` WHERE incomeDate BETWEEN '28-12-2016' and '31-12-2016'
SELECT * FROM `incomes` WHERE incomeDate BETWEEN '28-12-2016' and '31-01-2017'
작동하지하지만 난 쿼리 이하로 할 때 그것은 결과를 보여SQL이 쿼리가 작동하지 제대로
SELECT * FROM `incomes` WHERE incomeDate BETWEEN '28-12-2016' and '31-12-2016'
날짜 형식을 변경하십시오, comparion에서 MYSQL 지원 'YYYY-MM-DD'날짜 포름 산염 . 아래 쿼리를 사용하십시오.
SELECT * FROM incomes WHERE incomeDate BETWEEN '2016-12-28' and '2017-01-31'.
희망이 도움이 될 것입니다.
날짜 열과 (2) 문자열 리터럴을 비교하고 있습니다. 여기서 일어나는 일은 날짜가 문자열로 변환되어 사전 식으로 비교된다는 것입니다. 대신 문자열을 날짜로 명시 적으로 변환하여 날짜 순서에 따라 비교해야합니다.
SELECT *
FROM incomes
WHERE incomeDate BETWEEN STR_TO_DATE('28-12-2016', '%d-%m-%Y') AND
STR_TO_DATE('31-01-2017', '%d-%m-%Y')
글쎄, 항상 사전 적 비교입니다! – Strawberry
... 'incomeDate' 열의 데이터 형식은 무엇입니까? 그것은'DATE' 또는'VARCHAR'로 선언 되었습니까? dd-mm-yyyy 형식의 문자열 리터럴은 표준이 아니며 표준이 아닙니다. 문자열 비교는 왼쪽에서 오른쪽으로 문자 단위로 수행됩니다. 따라서 '29 -07-1999 '의 문자열 값은 두 문자열 리터럴간에 * 일 것이지만 * 날짜 *를 나타내는 데 사용됩니다. 날짜는 아닙니다. – spencer7593