Mysql 날짜 함수가 다음 시간 동안 작동하지 않습니다.
나는 이것에 대해 아래 쿼리를 사용한 2012-12-28 이하의 모든 레코드를 가져와야 합니다. booking_time은 DATTIME 필드이고 2012-12-28 이하의 레코드가 있지만 0개의 행을 반환합니다.누구 아이디어 있는 사람?
SELECT * FROM ctx_bookings WHERE DATE(booking_time)<=2012-12-28 ORDER BY id ASC
테이블파일
+---------------------+
| booking_time |
+---------------------+
| 2012-12-20 03:10:09 |
| 2012-12-25 02:10:04 |
+---------------------+
왜 이런 일이 일어나고 있는지 아는 사람?
하나의 인용문으로 가치를 포장하면 반드시 효과가 있을 것입니다.
SELECT *
FROM ctx_bookings
WHERE DATE(booking_time) <= '2012-12-28'
ORDER BY id ASC
MySQL은 다음과 같은 형식으로 값을 인식합니다.
둘 중 하나의 문자열로서
'YYYY-MM-DD'
아니면'YY-MM-DD'
체재를 갖추다"완화된" 구문이 허용됩니다.날짜 부분 사이의 구분 기호로 구두점 문자를 사용할 수 있습니다.예를들면,'2012-12-31'
,'2012/12/31'
,'2012^12^31'
,그리고.'2012@12@31'
동치입니다.두 구분 기호가 없는 문자열로서
'YYYYMMDD'
아니면'YYMMDD'
문자열이 날짜로 의미가 있다면 형식을 지정할 수 있습니다.예를들면,'20070523'
그리고.'070523'
로 해석됩니다.'2007-05-23'
,그렇지만'071332'
비합법적이며(비합법적인 월 및 일 부분이 있음)'0000-00-00'
.둘 중 하나의 숫자로서
YYYYMMDD
아니면YYMMDD
형식, 숫자가 날짜로 의미가 있는 경우.예를들면,19830905
그리고.830905
로 해석됩니다.'1983-09-05'
.
@Barmar가 말했듯이, 당신의 문자 그대로의 표현은2012-12-28
산술적으로 평가됩니다.(2012 - 12) - 28
, 이는 1,972에 해당합니다.
@JW.의 답변에 따라 해당 식을 인용하여 유효한 날짜 리터럴(위의 첫 번째 양식)을 얻을 수 있습니다.또는:
리터럴을 인용하는 동안 날짜 부분 사이의 구분 기호로 다른 구두점 문자(또는 문자 없음)를 사용할 수 있습니다.
WHERE DATE(booking_time) <= '2012_12_28' WHERE DATE(booking_time) <= '20121228'
구분 기호를 제거하고 문자 그대로 따옴표를 사용하지 않을 수 있습니다.
WHERE DATE(booking_time) <= 20121228
또한 이와 같은 필터 기준을 사용하면 함수를 사용합니다(이 경우에는DATE()
function) 열에 걸쳐 해당 함수를 평가하려면 전체 테이블 스캔이 필요하므로 어떤 인덱스에서도 이점을 얻지 못합니다.보다 검색 가능한 대안은 기준을 충족하는 열 값의 범위(즉, 시간)에 대해 보다 명확하게 필터링하는 것입니다.
WHERE booking_time < '2012-12-28' + INTERVAL 1 DAY
이는 다음 날 이전에 엄격하게 해당하는 시간은 반드시 이자가 발생한 날 또는 그 이전에 발생하기 때문에 해당합니다.열을 상수식과 비교하기 때문에 검색 가능합니다(결과)+
임)에 수).booking_time
일치하는 모든 레코드를 즉시 찾기 위해 이동할 수 있습니다.
SELECT * FROM ctx_bookings WHERE DATE(booking_time)<='2012-12-28' ORDER BY id ASC
이 짝을 시험해 보다
언급URL : https://stackoverflow.com/questions/14051057/mysql-date-function-not-working-for-less-than
'programing' 카테고리의 다른 글
함수 내부의 구조를 정의할 때 "벌점"이 있습니까? (0) | 2023.10.20 |
---|---|
제품 페이지에서 클릭 가능한 이미지 방지, 제품-이미지 링크 비활성화 (0) | 2023.10.20 |
Woocommerce 주문내역에 상품선택비용 표시 (0) | 2023.10.15 |
multicolumn unique key mysql insert (0) | 2023.10.15 |
공백을 무시하는 쿼리 (0) | 2023.10.15 |